是否可以将 csv 文件中的数据读入字典,第一列是键,第二列是键。
例如我有一个 csv 文件
code msg
123456 Lorem ipsum dolor sit amet, consectetur adipiscing elit
345981 sed do eiusmo ut labore, et dolore magna aliqua;
459827 ullamco, laboris nisi ut aliquip ex ea commodo consequat.
490023 veniam, quis nostrud exercitation
345612 mollit anim id est laborum.
code 代表键,msg 代表与每个代码关联的值。
import csv
with open('test.csv') as f:
reader = csv.reader(f)
mydict = {rows[0]:rows[1:] for rows in reader}
print(mydict)
x = mydict.get("123456")
print(x)
结果:
{'code;msg': [], '123456;Lorem ipsum dolor sit amet': [' consectetur adipiscing elit'], '345981;"sed do eiusmo ut labore': [' et dolore magna aliqua;"'], '459827;ullamco': [' laboris nisi ut aliquip ex ea commodo consequat.'], '490023;veniam': [' quis nostrud exercitation'], '345612;mollit anim id est laborum.': []}
None
我想搜索与每个键关联的值。
EG:当我写的时候:
key= "123456"
value=mydict.get(key)
print(key + "has this value : " + value)
我会得到这样的输出:
>>> The key 123456 has this value :Lorem ipsum dolor sit amet, consectetur adipiscing elit
最佳答案
无需任何导入,您可以使用:
with open('test.csv') as f:
csv = f.readlines()
d = {}
for line in csv[1:]: # Loop csv lines skipping first line csv[1:] (headers)
m = line.split()
if len(m) > 1:
d[m[0]] = " ".join(m[1:])
print(d)
输出:
{'123456': 'Lorem ipsum dolor sit amet, consectetur adipiscing elit', '345981': 'sed do eiusmo ut labore, et dolore magna aliqua;', '459827': 'ullamco, laboris nisi ut aliquip ex ea commodo consequat.', '490023': 'veniam, quis nostrud exercitation', '345612': 'mollit anim id est laborum.'}
注意事项:
要按
键
搜索,我通常使用:if '123456' in d: print(d['123456']) # Lorem ipsum dolor sit amet, consectetur adipiscing elit
打印字典
键
和值
print(d.keys(), d.values()) # dict_keys(['123456', '345981', '459827', '490023', '345612']) # dict_values(['Lorem ipsum dolor sit amet, consectetur adipiscing elit', 'sed do eiusmo ut labore, et dolore magna aliqua;', 'ullamco, laboris nisi ut aliquip ex ea commodo consequat.', 'veniam, quis nostrud exercitation', 'mollit anim id est laborum.'])
关于Python csv(两列: key/value) to Dictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55492653/