将文本文件转换为python字典-一个键和多个值-排除一个字段

时间:2018-09-22 05:38:44

标签: python

我有以下制表符分隔的文本文件:

1 John 27 doctor Chicago
2 Nick 33 engineer Washington

我正在尝试将其转换为python字典,其中的关键字是NAME,年龄,职业和地址是值。我想排除排名(1、2)。

代码:

myfile = open ("filename", "r") 
d = { } 
for line in myfile: 
    x = line.strip().split("\t") 
    key, values = int(x[0]), x[1:] 
    d.setdefault(key, []).extend(values)
print(d)

2 个答案:

答案 0 :(得分:1)

您可以将其转换为按名称索引的dict,而在元组中使用值代替

d = {}
with open('filename', 'r') as myfile:
    for line in myfile:
        _, name, *values = line.strip().split("\t")
        d[name] = values
print(d)

使用您的示例输入,将输出:

{'John': ('27', 'doctor', 'Chicago'), 'Nick': ('33', 'engineer', 'Washington')}

答案 1 :(得分:0)

您没有解释面临的困难。 但是,从制表符分隔的文本示例中,您希望具有以下类似的用法:

{'John': ['27', 'doctor', 'Chicago'], 'Nick': ['33', 'engineer', 'Washington']}

如果这是您想要达到的输出,那么我修改了您的代码。

myfile = open ("filename", "r") 
d = { } 
for line in myfile: 
    x = line.strip().split("\t") 
    key, values = x[1], x[2:] 
    d.setdefault(key, []).extend(values)
print(d)