我将两个字符串连接在一起并将它们打印到csv,我的结果就是这个
"('Hail, Caesar!', '2016')"
"('Pride and Prejudice and Zombies', '2016')"
"('Home Invasion', '2016')"
但我希望它像这样
Hail, Caesar!,2016
Pride and Prejudice and Zombies, 2016
我的实际代码是
for u in response_data:
titolo = u['title'].encode('utf-8')
anno = u['release_date']
anno1 = str(anno[:4])
output = titolo, anno1
writertitolo.writerow([output])
我该如何解决这个问题? response_data是一个JSON响应
答案 0 :(得分:2)
尝试将代码更改为:
for u in response_data:
titolo = u['title'].encode('utf-8')
anno = u['release_date']
anno1 = str(anno[:4])
output = titolo, anno1
writertitolo.writerow(output)
当你这样做时
output = titolo, anno1
output
将包含值(titolo, anno1)
,
现在你写给csv的是
[output]
这将转换为[(titolo, anno1)]
您需要写入csv的是[titolo, anno1]
答案 1 :(得分:2)
csv.writerow
采用iterable并写入该iterable的元素。
在您的情况下,output
已经是titolo
和anno1
的元组。因此,当您编写[output]
时,实际上会得到[(titolo, anno1)]
这是一个包含单个列表的列表:一个元组。因此,当您编写一个项目时,它会转换为一个字符串,从而导致您看到的结果。
相反,你想直接传递元组:
writertitolo.writerow(output)