嗨,当我尝试使用以下代码将字典保存到csv时:
with open(file, 'wb') as f: # Just use 'w' mode in 3.x
w = csv.DictWriter(f, my_dictionary.keys())
w.writeheader()
w.writerow(my_dictionary)
我收到此错误消息
TypeError: a bytes-like object is required, not 'str'
是否有此解决方法?
答案 0 :(得分:2)
您以二进制模式打开了文件,因此只需删除b并放入w,我认为它应该可以工作。当以二进制模式打开文件时,这意味着从文件读取的所有数据都以字节的形式返回,而不是“ str”类型。因此,如果您想将b保留在那里,则需要将字节用于其他所有内容
答案 1 :(得分:1)
我认为这不是最佳做法。 如果您的目标只是将字典保存在csv中,则可以逐行存储字典,并以您喜欢的方式将键和值分开,
with open('/home/sebastiano/Desktop/test.txt', 'w+') as f:
for k, v in d.items():
f.write('{}, {}'.format(k, v))
否则,您应该使用库泡菜,这样就可以完全重载为同一对象。