【发布时间】:2015-05-18 21:19:14
【问题描述】:
我正在尝试将一些数据打印到 csv 文件,但 unicode 正在扼杀我的氛围。
我的数据是字典格式 - 这里是一个 sn-p:
{'category': u'Best food blog written by a linguist\xa0', 'runners_up': [], 'winner': [u'shesimmers.com'], 'category_url': 'http://www.chicagoreader.com/chicago/best-food-blog-written-by-a-linguist/BestOf?oid=4101663'}
这是我使用 DictWriter 方法的代码段。
data = utf_8_encoder(data)
with open('best_food_n_drink.csv', 'w') as csvfile:
categories = ['category', 'category_url', 'winner', 'runners_up']
writer = csv.DictWriter(csvfile, delimiter =',', fieldnames=categories)
writer.writeheader()
for row in data:
writer.writerow(row)
utf_8_encoder 来自我之前定义的一个函数:
def utf_8_encoder(unicode_csv_data):
for line in unicode_csv_data:
line.encode('utf-8')
return unicode_csv_data
我不断收到'dict' object has no attribute 'encode' 之类的错误消息。我已经尝试按照放弃编码器功能并在底部的 for 循环中替换 row.values().encode('utf-8') 的方式做一些事情,但这只是告诉我“列表对象没有属性”编码“。
我也试过用('ascii', 'ignore') 代替('utf-8'),但就是想不通。
【问题讨论】:
-
你需要编码一个字符串,而不是一个列表,或者一个字典。
-
什么版本的python?
-
@PadraicCunningham 2.7.6.
-
你期望什么输出?
标签: python csv unicode encoding utf-8