0

我正在尝试在 python 中将 csv 导入 JSON:

myjson = list()
with open("stuff.csv","rU") as f:
    vals = csv.DictReader(f)
    for i in vals:
        myjson.append(i)

当我使用 csv 的 DictReader() 时,我经常会在几乎每条记录中看到看似无效的 unicode 字符,例如:

\xc9

...在文本字段中。据我所知,这是颠倒 e 的有效 unicode 字符。但是,由于它嵌入在较长的字符串中,因此它似乎实际上是未编码的,并且整个键是 str 类型而不是 unicode 类型。

我认为这是给我的数据条目或 csv 模块的遗物,但是是否有任何标志、标签或读取 CSV 的替代方式可以通过转换适当地处理这个问题?

4

1 回答 1

0

您正在查看 Python 字符串文字。\xc9序列是转义码,Python 将其用于任何不可打印或超过代码点 128 的代码点。对于超过 255 的代码点,使用转义\uxxxx序列代替。

默认情况下,Python 将打印容器中包含的值的表示形式,例如列表或字典。unicode 值的表示(repr()函数结果)打印为 python 字符串文字:

>>> print [u'Hello: \xc9']
[u'Hello: \xc9']
>>> print [u'Hello: \xc9'][0]
Hello: É
于 2013-07-16T14:24:00.750 回答