连接字符串和写入cvs给出了“”和(

时间:2016-02-03 19:42:57

标签: python

我将两个字符串连接在一起并将它们打印到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响应

2 个答案:

答案 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已经是titoloanno1的元组。因此,当您编写[output]时,实际上会得到[(titolo, anno1)]这是一个包含单个列表的列表:一个元组。因此,当您编写一个项目时,它会转换为一个字符串,从而导致您看到的结果。

相反,你想直接传递元组:

writertitolo.writerow(output)