【发布时间】:2012-09-16 21:28:23
【问题描述】:
我创建了一个包含字典的文件,其中包含用西班牙语编写的数据(即 Damián 等):
fileNameX.write(json.dumps(dictionaryX, indent=4))
数据来自一些fql抓取操作,即:
select name from user where uid in XXX
当我打开文件时,例如,我发现“Damián”看起来像“Dami\u00e1n”。 我尝试了一些选项:
-
ensure_ascii=False:
fileNameX.write(json.dumps(dictionaryX, indent=4, ensure_ascii=False))但我收到一个错误(UnicodeEncodeError: 'ascii' codec can't encode character u'\xe1' in position XXX: ordinal not in range(128))。
-
编码(encoding='latin-1):
dictionaryX.append({ 'name': unicodeVar.encode(encoding='latin-1'), ... })但我得到另一个错误(UnicodeDecodeError: 'utf8' codec can't decode byte 0xe1 in position XXX: invalid continuation byte)
总而言之,我尝试了几种可能性,但没有一个线索。我迷路了。拜托,我需要帮助。谢谢!
【问题讨论】:
-
这不正确吗?根据 JSON 标准,非 ASCII 字符可以使用 unicode 转义来表示……所以文件似乎包含正确的数据!
标签: python json unicode encoding facebook-fql