enter image description here文件.csv=[ { “名字”:“基兰”, “姓氏”:“威尔逊”, “年龄(年)”:“89”, “性别”:“男性”, “退休”:“真实”, “婚姻状况”:“已婚或民事伴侣”, “受抚养人”:“3” }, { “名字”:“Ryan”, “姓氏”:“克拉克”, “年龄(年)”:“23岁”, “性别”:“男性”, “退休”:“假”, “婚姻状况”:“已婚或民事伴侣”, “受抚养人”:” }, { “名字”:“克莱夫”, “姓氏”:“埃文斯”, “年龄(年)”:“67”, “性别”:“男性”, “退休”:“真实”, “婚姻状况”:“单身”, “受抚养人”:” }]
with open("file.csv",mode='a') as myfile:
myfile=csv.writer(myfile,delimiter=",")
for line_number,line in enumerate(myfile):
if line[10] == "":
myfile.writerow("N/A")
print(my_file)
注意,这实际上是一个更大的数据集,“依赖者”CSV文件的原始标头是行(10),列有一些空白行,我希望空白行被“N/A”
替换。
因为您的输入是一个字典列表,所以您最好使用
csv.DictWriter
而不是csv.Writer
。而不是在写入文件的中间拦截无效值,它将更简单地预先修复数据。代码还有几个其他问题,最重要的是循环中的line
是一个字典,但是您通过索引访问它,就像它是一个列表一样正如其中一条评论所指出的,调用变量
file.csv
是一个语法错误,除非您定义了一个名为file
的对象首先创建具有可用名称的词典:
然后修复空白列以包含^ {CD6>}:
这将处理所有可能包含空白的列,并且您可能会发现有更多的数据会出现这种情况
代码对文件和
csv.Writer
对象都使用myfile
。那是个坏主意。除非您知道要附加到现有文件,否则请使用w
而不是a
这里的不是csv,而是JSON文件。如果要将其写入文件,则可以执行以下操作:
注意,我将一起使用as namevar filecvs
一,
相关问题 更多 >
编程相关推荐