我手头的问题是从API获取数据并将数据输入csv。我可以得到数据,但是将数据输出到csv中是我得到错误的地方。有人能帮忙吗。
下面是示例代码:
import csv,sys
def read_campaign_info(campaigns):
myfile = csv.writer(open("output.csv", "w"))
for insight in reach_insights:
account_id = str(insight[AdsInsights.Field.account_id])
objective = str(insight[AdsInsights.Field.objective])
metrics =[account_id,objective]
wr = csv.writer(myfile,quoting=csv.QUOTE_ALL)
wr.writerows(metrics)
变量类型metrics
是<class 'list'>
我得到的错误是
wr = csv.writer(myfile,quoting=csv.QUOTE_ALL)
TypeError: argument 1 must have a "write" method
您正在将
csv.writer()
对象传递给csv.writer()
:myfile
是一个csv.writer()
对象已经。将行传递给该行,或者从myfile
行中移除csv.writer()
调用(但随后将wr = csv.writer(..)
行移出循环,只需创建一次)。我强烈建议您将文件对象用作上下文管理器,以便正确关闭它。另外,您希望将换行处理留给CSV模块,因此在打开文件时使用
newline=''
:csv.writer()
对象为您处理到字符串的转换,因此str()
调用是多余的。相关问题 更多 >
编程相关推荐