【发布时间】:2018-06-23 12:41:16
【问题描述】:
我有一个列表字典如下:
{'banana': [1,2],
'monkey': [5],
'cow': [1,5,0],
...}
我想写一个包含一个数字和单词的csv如下:
1 | banana
2 | banana
5 | monkey
1 | cow
5 | cow
0 | cow
...
与 |作为分隔符。
我尝试将其转换为元组列表,如下所示:
for k, v in dic.items():
for ID in v:
rv.append((ID, k))
with open(index_filename,'wb') as out:
csv_out=csv.writer(out, delimiter='|')
csv_out.writerow(['identifier','descriptor'])
for row in rv:
csv_out.writerow(row)
但运行此错误:
a bytes-like object is required, not 'str'
有没有比转换为元组更有效的方法,如果没有,我的代码有什么问题?
谢谢。
【问题讨论】:
-
你以二进制模式打开
index_filename,因为你传递了'b',因此Python需要bytes而不是str。省略'b',改为以文本模式打开文件,即可写入字符串数据。
标签: python list csv dictionary csv-write-stream