python list写入csv:Error: iterable expected, not int

学习参考文章
今天在使用python 将list写入csv中时,遇到Error: iterable expected, not int

    def write_data_to_csv(self):
        print(self.title_list)
        print(self.perf_info_list)
        print(type(self.perf_info_list))
        if self.cvs_file_exist() and self.read_cvs_file():
            with open(self.file_path, 'a+', newline='', encoding='utf-8')as f:
                f_csv = csv.writer(f)
                f_csv.writerows(self.perf_info_list)
        else:
            with open(self.file_path, 'a+', newline='', encoding='utf-8')as f:
                f_csv = csv.writer(f)
                f_csv.writerow(self.title_list)
                f_csv.writerows(self.perf_info_list)
Traceback (most recent call last):
  File "C:/Users/baosenzhang/PycharmProjects/NewsPerformanceData/analyse_perf_data.py", line 101, in <module>
resultjsonlog.txt
    handle_perf_info.write_data_to_csv()
  File "C:\Users\baosenzhang\PycharmProjects\NewsPerformanceData\save_perf_info.py", line 46, in write_data_to_csv
    f_csv.writerows(self.perf_info_list)
_csv.Error: iterable expected, not int

复盘:
1.问题根源:
①不熟悉csv模块,将csv 模块里的Writer 对象的两个方法:csvwriter.writerow(row)与csvwriter.writerows(rows)搞混了

2.解决问题过程
①Google搜索:iterable expected, not int

②搜到stackoverflow上的帖子:Python list to csv throws error: iterable expected, not numpy.int64

③ 查看python官方文档csv 模块

3.问题具体剖析
大白话:

①csvwriter.writerow(row)解决的是输入一行内容,csvwriter.writerow(list1)将列表list1中的所有元素输入到文件一行。不需考虑太多。

②csvwriter.writerows(rows)解决的是输入多行内容,csvwriter.writerows(list1)将列表list1中的元素输入到文件多行,列表list1中的每个元素占一行,list1中的元素需为“可迭代的元素”,字符串是可迭代,整数是不可迭代的。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值