首页 > 解决方案 > 如何创建包含空csv字段的dict作为None?

问题描述

我有一个这样的 csv 文件:

id,subid
1,a
2
3,c
4

当我将其映射到字典时,字典的创建方式如下:

{'1':'a'}
{'3':'c'}

目前它会跳过那些子 ID 为空的。我希望空的显示为None.

我当前的代码:

import csv
reader = csv.reader(open('filename.txt', encoding='utf-8', mode='r'))
for row in ricom:
   d={}
   try:
       d = {row[0]:row[15]}
       print(d)
   except IndexError:
       pass    

我正在做tryandexcept因为如果不row[15]抛出,index list out of range因为某些字段是空的。

我想要的输出应该是这样的:

{'1':'a'}
{'2': None}
{'3': 'c'}
{'4': None}

注意:csv 中有 20 多列,但我只举了两列作为示例。

PS:csv文件为excel格式。我的意思是filename.csv。反正我觉得应该没关系!任何帮助深表感谢。

标签: pythoncsv

解决方案


利用csv.DictReader

前任:

import csv

with open(filename) as infile:
    reader = csv.DictReader(infile)
    for row in reader:
        print({row["id"]: row.get("subid")})

输出:

{'1': 'a'}
{'2': ''}
{'3': 'c'}
{'4': ''}

推荐阅读