【发布时间】:2017-05-05 07:19:04
【问题描述】:
我有一个将数据写入 csv 文件的以下 python 代码。
from StringIO import StringIO
import unicodecsv as csv
res_io = StringIO()
csv_writer = csv.DictWriter(
res_io, encoding='utf-8', fieldnames=header,
delimiter=str(','), quoting=csv.QUOTE_NONNUMERIC
)
# PyCharm Debugger
# results: <type 'list'>: [{'review': {u'a': u'foo', u'b': u'bar'}, 'id': '1'}]
csv_writer.writerows(results)
我在 CSV 中得到的输出,u 前面带有键和值,我在输出 CSV 中不需要它。
CSV 中的预期输出(我已手动编辑以上输出):
【问题讨论】:
-
最简单的解决方案:改用 Python 3。无论如何,你为什么期望输出是这样的?它是 Python 2 字典的
repr,这就是它与 Unicode 字符串一起工作的方式。一种选择是重写整个字典以使用 Python 2 字符串等。 -
我不明白这里的问题,您希望 'u' 不出现在输出 csv 中吗?这个问题似乎表明了别的东西。
-
它适用于 Python3,但我正在寻求 Python2.7 的帮助。
-
是的,我不想在输出 csv 中出现
u -
你为什么首先将字典写入 CSV 列?至少然后使用标准格式,如 JSON。或者根本不使用 CSV。