Python 如何创建dict,将空csv字段包含为无?

Python 如何创建dict,将空csv字段包含为无?,python,csv,Python,Csv,我有一个如下的csv文件: id,subid 1,a 2 3,c 4 当我将其映射到dict时,dict的创建如下所示: {'1':'a'} {'3':'c'} 目前,它跳过子ID为空的子ID。我希望空的显示为None 我当前的代码: import csv reader = csv.reader(open('filename.txt', encoding='utf-8', mode='r')) for row in ricom: d={} try: d = {row

我有一个如下的csv文件:

id,subid
1,a
2
3,c
4
当我将其映射到dict时,dict的创建如下所示:

{'1':'a'}
{'3':'c'}
目前,它跳过子ID为空的子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    
我正在执行
try
except
,因为如果不是
行[15]
将抛出
索引列表,因为某些字段为空

我想要的输出应该是:

{'1':'a'}
{'2': None}
{'3': 'c'}
{'4': None}
注意:csv中有20多列,但我只举了两列作为示例


注意:csv文件是excel格式的。我的意思是
filename.csv
。我想反正也没关系!非常感谢您的帮助。

使用
csv.DictReader

Ex:

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': ''}
输出:

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': ''}
我会用它来读取数据。然后,您可以按以下方式使用
dict.get

with open('filename.txt', encoding='utf-8', mode='r') as f:
    reader = csv.DictReader(f)
    d = {row['id']: row.get('subid') for row in reader}

print(d)
#  {'1': 'a', '2': None, '3': 'c', '4': None}