Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中打印csv文件的计数器时出错_Python_Csv_Dictionary_Counter - Fatal编程技术网

在Python中打印csv文件的计数器时出错

在Python中打印csv文件的计数器时出错,python,csv,dictionary,counter,Python,Csv,Dictionary,Counter,我似乎在将计数器打印到csv文件时遇到问题。我试着遵循这些思路,但似乎我一直在遇到问题 我的计数器格式如下: >>> print(daysCounter) Counter({'03/08/2016': 246, '13/12/2016': 220, '22/01/2016': 198, '20/09/2016': 191}) 计数器要大得多,但这提供了格式化的概念 现在,当我尝试使用(之前已导入csv)时: 我得到一个错误: Traceback (most recent ca

我似乎在将计数器打印到csv文件时遇到问题。我试着遵循这些思路,但似乎我一直在遇到问题

我的计数器格式如下:

>>> print(daysCounter)
Counter({'03/08/2016': 246, '13/12/2016': 220, '22/01/2016': 198, '20/09/2016': 191})
计数器要大得多,但这提供了格式化的概念

现在,当我尝试使用(之前已导入csv)时:

我得到一个错误:

Traceback (most recent call last):
  File "contribs.py", line 138, in <module>
    lifetime_analysis(data)
  File "contribs.py", line 91, in lifetime_analysis
    writer.writerow([key, value])
TypeError: a bytes-like object is required, not 'str'
非常感谢您的关注和时间

with open('lifetime_edits.csv', 'wb') as csv_file:
这需要字节输入,您使用“b”模式打开文件,只需使用“w”模式,此模式默认输入为str:

打开('lifetime\u edits.csv',w')作为csv\u文件:

推荐方式:

with open('lifetime_edits.csv', 'w', newline='') as csv_file:
如果未指定newline=,则在带引号的字段中嵌入换行符 将无法正确解释,并且在使用的平台上\r\n 将添加一个额外的写入上的linendings\r。指定newline=“”应该总是安全的,因为csv模块有自己的功能 (通用) 换行处理


是的,这解决了问题。谢谢你澄清。我不确定它是否相关,但在这个csv文件中,似乎每行之间都有一条空行。这是正常的行为吗?代码运行良好,我不确定这是否是系统问题,但在文档中,有一种安全的方法可以做到这一点,我更新了代码awesome,这一添加消除了换行符。下次我会把它保存在ind里。谢谢你抽出时间!
with open('lifetime_edits.csv', 'wb') as csv_file:
with open('lifetime_edits.csv', 'w', newline='') as csv_file: