python - 如何使用逗号分隔文件创建字典
问题描述
请建议如何从以下文件内容创建字典
2,20190327.1.csv.gz
3,20190327.23.csv.gz
4,20190327.21302.csv.gz
2,20190327.24562.csv.gz
我需要的输出是
{2:20190327.1.csv.gz:982, 3:20190327.23.csv.gz, 4:20190327.21302.csv.gz, 2:20190327.24562.csv.gz}
我是 python 新手,我尝试了下面的代码,但它不起作用。请建议
from __future__ import print_function
import csv
file = '/tmp/.fileA'
with open(file) as fh:
rd = csv.DictReader(fh, delimiter=',')
for row in rd:
print(row)
解决方案
问题是因为DictReader
认为第一行是字段映射,所以数字 2 将用作下一行的键。此外,您不能两次使用相同的密钥,因此将覆盖使用 2 作为密钥的情况之一。
import csv
file = 'data.csv'
my_dict = {}
with open(file) as fh:
rd = csv.reader(fh, delimiter=',')
for row in rd:
my_dict[row[0]] = row[1]
print(my_dict)
输出:
$ python3 reader.py
{'2': '20190327.24562.csv.gz', '3': '20190327.23.csv.gz', '4': '20190327.21302.csv.gz'}
推荐阅读
- vue.js - Vue.js 使用 v-model 进行全局数据访问
- angular - 如何在 Ionic 中使用相同的模型进行添加和编辑
- python - 使用opencv获取蒙版后如何模糊图像?
- c++ - *的位置有什么区别:*变量与变量*
- javascript - Javascript在画布上模拟鼠标移动事件
- javascript - 如何使用 angular 6 的 save-svg-as-png
- css - 如何在下拉框顶部显示下拉列表(始终)
- android - 在 ViewModel 之间共享数据
- elasticsearch - 为什么拼音搜索比普通匹配查询慢得多
- scala - 使用scala spark将参数传递给sql字符串三元组