Python Dict to JSON:JSON.dumps unicode错误,但ord(str(Dict))不会产生超过128的任何结果

Python Dict to JSON:JSON.dumps unicode错误,但ord(str(Dict))不会产生超过128的任何结果,python,json,dictionary,unicode,ord,Python,Json,Dictionary,Unicode,Ord,我有一个任务,我需要生成一个数据字典的可移植版本,并插入一些额外的字段。我最终构建了一个有点大的Python字典,然后我想将其转换为JSON。但是,当我尝试此转换时 with open('CPS14_data_dict.json','w') as f: json.dump(data_dict,f,indent=4,encoding='utf-8') 我被一个例外打了一巴掌: UnicodeDecodeError: 'utf8' codec can't decode byte 0x92

我有一个任务,我需要生成一个数据字典的可移植版本,并插入一些额外的字段。我最终构建了一个有点大的Python字典,然后我想将其转换为JSON。但是,当我尝试此转换时

with open('CPS14_data_dict.json','w') as f:
    json.dump(data_dict,f,indent=4,encoding='utf-8')
我被一个例外打了一巴掌:

UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 17: invalid start byte
我知道这是一个常见的错误,但就我的一生而言,我无法找到一个例子来说明如何在字典中找到有问题的部分。我看到的唯一可行的方法是将字典转换为字符串,并对每个字符运行
ord()

for i,c in enumerate(str(data_dict)):
    if ord(c)>128:
        print i,'|',c
问题是,此操作根本不返回任何内容。我是否遗漏了一些关于
ord()
工作原理的信息?或者,报告了一个位置(17),但我不清楚这指的是什么。第17个字符、行或条目似乎没有任何问题

我应该说我知道
确保ascii=False
选项。事实上,它将写入磁盘(这很漂亮)。然而,这一方法似乎只是把问题解决了。当我试图读回文件时,我得到了相同的编码错误。由于我希望将此文件用于多种用途(转换回字典),因此这是一个问题

请注意,这是我使用Windows7的工作计算机,因此我没有shell工具来浏览该文件(而且我的虚拟机处于崩溃状态)


任何帮助都将不胜感激。

str(数据字典)
始终只使用ASCII字符生成表示。ByTestRing中的非ASCII字节将使用
\xhh
字符序列.Dang表示。
\xhh
是每次使用的实际序列吗?还是仅仅是一个例子?谢谢你的来电。may may a good read…@MarvinWardJr:127以上的任何字节都将使用该序列表示;Python将值反映为。\x92是撇号,以防您试图手动查找它。
str(data\u dict)
始终只使用ASCII字符生成表示。ByTestRing中的非ASCII字节将使用
\xhh
字符序列.Dang表示。
\xhh
是每次使用的实际序列吗?还是仅仅是一个例子?谢谢你的来电。may may a good read…@MarvinWardJr:127以上的任何字节都将使用该序列表示;Python将值反映为。\x92是撇号,以防您试图手动查找它。
str(data\u dict)
始终只使用ASCII字符生成表示。ByTestRing中的非ASCII字节将使用
\xhh
字符序列.Dang表示。
\xhh
是每次使用的实际序列吗?还是仅仅是一个例子?谢谢你的来电。may may a good read…@MarvinWardJr:127以上的任何字节都将使用该序列表示;Python将值反映为。\x92是撇号,以防您试图手动查找它。