python - 我想加载到字典中的逗号分隔文件

标签 python dictionary

我有一个逗号分隔的文件,一行看起来像:

“ABC234234”,23

我想将其加载到字典中,键是第一部分,即“ABC234234”

我也必须远程双引号。

执行此操作的 pythonic 方式是什么?

最佳答案

我建议(像往常一样)使用 with 语句打开 CSV 文件(这确保在您关闭时关闭完成!)——除此之外,@carl 的回答通常还不错:

import csv

with open('yourfile.csv', 'rb') as f:
    thedict = dict(csv.reader(f))

然后根据需要自由使用thedict

请注意,值(当然还有键)将是字符串。如果您知道第二列总是有一个整数,并且想要将 int 作为值,您可以将赋值替换为

    thedict = dict((k, int(v)) for k, v in csv.reader(f))

或者,如果您希望避免代码中的过度紧凑/密度,请将此最新语句分解为,例如:

    ks_vs = ((k, int(v)) for k, v in csv.reader(f))
    thedict = dict(ks_vs)

当然,如果您愿意,也可以进一步分解。

这适用于 Python 2.6 或更高版本。如果您坚持使用 2.5,要使其正常工作,请添加

from __future__ import with_statement

在模块的顶部——我的其余建议仍然适用;-)。

关于python - 我想加载到字典中的逗号分隔文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3518722/

相关文章:

python - 使用 Python MySQLdb timedelta 进行 WreSTLing

python - 如何根据函数在调用其项目时返回的内容对列表进行排序

python - 合并版本化字典数组

python - 当无法进行 pickle 时如何进行深层复制

python - 如何判断 python 的 ZipFile.writestr() 是否因为文件已满而失败?

python - 如何在 Vim 中通过 ALE 运行 isort?

.net - Dictionary<,>.SetCapacity(int newCapacity) 在哪里?

在 map 上使用 lambda 时出现 C++11 编译错误

python - 将列表添加为 pandas Dataframe 中的值

python - 将数字转换为 4 字节的二进制?