python - 将 .txt 文件处理成字典 (Python v2.7)

标签 python parsing dictionary

我目前正在寻找处理和解析来自 this .txt file 的信息.该文件似乎是制表符分隔的。我希望将以 16 为基数的值(即 000000)解析为字典键,并将公司名称(即 Xerox Corporation)解析为字典值。因此,例如,如果我在字典中查找键 000001,Xerox Corporation 将作为相应的值返回。

我已经尝试将 .txt 文件解析为 csv,读取每第 n 行的条目,但不幸的是没有模式,第 n 个数字也不同。

有没有什么方法可以捕获术语“base 16”之前的值,然后捕获它后面的术语以构成字典条目?

非常感谢

最佳答案

Well 条目用两个换行符分隔。第二行始终是 base16。第一个tab前的数据是base16键,最后一个是公司名。

import urllib

inputfile = urllib.urlopen("http://standards.ieee.org/develop/regauth/oui/oui.txt")
data = inputfile.read()

entries = data.split("\n\n")[1:-1] #ignore first and last entries, they're not real entries

d = {}
for entry in entries:
    parts = entry.split("\n")[1].split("\t")
    company_id = parts[0].split()[0]
    company_name = parts[-1]
    d[company_id] = company_name

部分结果:

40F52E: Leica Microsystems (Schweiz) AG
3831AC: WEG
00B0F0: CALY NETWORKS
9CC077: PrintCounts, LLC
000099: MTX, INC.
000098: CROSSCOMM CORPORATION
000095: SONY TEKTRONIX CORP.
000094: ASANTE TECHNOLOGIES
000097: EMC Corporation
000096: MARCONI ELECTRONICS LTD.
000091: ANRITSU CORPORATION
000090: MICROCOM
000093: PROTEON INC.
000092: COGENT DATA TECHNOLOGIES
002192: Baoding Galaxy Electronic Technology  Co.,Ltd
90004E: Hon Hai Precision Ind. Co.,Ltd.
002193: Videofon MV
00A0D4: RADIOLAN,  INC.
E0F379: Vaddio
002190: Goliath Solutions

关于python - 将 .txt 文件处理成字典 (Python v2.7),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8068138/

相关文章:

python - 如何一步重置所有组的DataFrame索引?

python - 在类常量中调用类方法

python - 无法将文本数据读入 python 中的 pandas 数据框

c# - StringWriter.ToString() 正在破坏 xml C#

python - 在 Python (pandas) 的多列中进行 Vlookup

python - 如何以嵌套字典格式对值进行排序?

python - 将迁移作为 Django Web 应用程序的 MS Azure 应用程序服务发布管道的一部分运行

android - 我将数据解析到一个 ListView 中,现在如何将图像添加到每一行的左侧? (来自可绘制文件夹)

java - 异常: "Invalid action number found in internal parse table." Polyglot Exception

javascript - 用于使用面板和鼠标控制缩放 map 的插件