Python csv(两列: key/value) to Dictionary

标签 python csv dictionary

是否可以将 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.'}

Python Demo


注意事项:

  1. 要按搜索,我通常使用:

    if '123456' in d:
        print(d['123456'])
        # Lorem ipsum dolor sit amet, consectetur adipiscing elit
    
  2. 打印字典

    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/

相关文章:

mysql - 为什么当我上传 csv 文件时,数据库中的某一列中的数字不断变化?

java - 将逗号分隔的字符串添加到 ArrayList,反之亦然

dictionary - 在结构中初始化嵌套映射

php - MySQL 数据导出后出现的保存文件对话框(使用 PHP)

Python 循环遍历字典列表以查找属性

c++ - 从字符串列表的列表的映射中获取字符串

python - 如何从字符串中提取多次出现的 dict?

python - 存储和散列密码 Flask - Python

python - Matplotlib - Python 错误

python - 导入 sklearn 时出现段错误