繁体   English   中英

在循环中使用字典在CSV中写行(Python 3)

[英]Writing rows in a csv using dictionaries in a loop (python 3)

我正在通过在循环中添加每一行并使用字典来编写csv文件。 以下是代码:

fieldnames = ['id', 'variable1', 'variable2']
f = open('file.csv', 'w')   
my_writer = csv.DictWriter(f, fieldnames)
my_writer.writeheader()
f.close()   

for i in something:

    something where I get data for mydict      

    with open('file.csv', 'a+b') as f:
    header = next(csv.reader(f))
    dict_writer = csv.DictWriter(f, header)
    dict_writer.writerow(mydict)

我确定几年前这段代码对我有用,但可能我在使用python2。 现在我正在使用python 3,它显示以下错误:

header = next(csv.reader(f))

StopIteration

可能是什么问题? 谢谢

我的解决方案是:

fieldnames = ['id', 'variable1', 'variable2']

f= open('file.csv', 'w', newline='')
my_writer = csv.DictWriter(f, fieldnames)
my_writer.writeheader()

for i in something:

   something where I get data for mydict   

    writer.writerow(mydict)

f.close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM