Python JSON Unicode错误OrderedDict

时间:2015-01-30 22:41:02

标签: python json python-2.7

我希望能够在编辑器中查看该文件并自动查看ü。

# -*- coding: utf-8 -*-
import json
from collections import OrderedDict

fdata = OrderedDict()
fdata[u"Züge"] = 0
fdata[u"Bahnhöfe"] = 0

with open("Desktop/test.json", "w") as outfile:
    json.dump(fdata, outfile, indent=2, ensure_ascii=False)
  

UnicodeEncodeError:'ascii'编解码器无法对字符u'\ xfc'进行编码   位置2:序数不在范围内(128)

它与OrderedDict有关,正常的dict可以工作。

2 个答案:

答案 0 :(得分:0)

我曾经遇到过类似的问题,我在.py文件的顶部添加了这一行,但它确实有效。

# coding=utf-8

答案 1 :(得分:0)

打开文件时,您没有指定编码,因此outfile.encoding可能是None

  

<强>的file.encoding

     

此文件使用的编码。当Unicode字符串时   写入文件后,它们将被转换为字节串   这种编码。另外,当文件连接到终端时,   该属性给出了终端可能使用的编码   (如果用户配置错误,该信息可能不正确   终奌站)。该属性是只读的,可能并非全部存在   类文件对象。 它也可能是None,在这种情况下文件使用   用于转换Unicode字符串的系统默认编码。

您的系统默认编码显然是ascii。

相反,请使用所需的编码打开文件:

import codecs
  with codecs.open("test.json", "w", encoding='utf-8') as outfile: