Python3 中如何将字典中的 Unicode 编码转换为汉字显示
Traceback (most recent call last):
{“person_news”:json.dumps(OrderedDict(sorted(person_news.items())),encoding=“Utf-8”,ensure_ascii=False)}])
File “/usr/lib64/python3.4/json/init.py”, line 237, in dumps
**kw).encode(obj)
TypeError: init() got an unexpected keyword argument 'encoding’
这种格式好像是 python2 的,报错不知道如何处理,求教!
Python3 中如何将字典中的 Unicode 编码转换为汉字显示
报错就是没有 encoding 这个参数啊…
在Python 3中,字符串默认就是Unicode编码。如果你字典里的值是\uXXXX这种格式的字符串,那它其实是个普通字符串,不是真正的Unicode对象。你需要把它“解码”成汉字。
最常见的情况是你从某些API或文件里拿到了这种JSON格式的字符串。直接用json.loads()就能自动转好:
import json
# 假设你拿到的是这样的字符串
json_str = '{"name": "\\u738b\\u5927\\u4f73", "city": "\\u5317\\u4eac"}'
data = json.loads(json_str)
print(data)
# 输出:{'name': '王大佳', 'city': '北京'}
如果字典里已经是这种字符串了(比如{'name': '\\u738b\\u5927\\u4f73'}),可以遍历字典用encode().decode('unicode_escape')来转:
def decode_unicode_dict(d):
decoded = {}
for key, value in d.items():
if isinstance(value, str):
# 处理\uXXXX格式的字符串
decoded[key] = value.encode('utf-8').decode('unicode_escape')
else:
decoded[key] = value
return decoded
# 示例
my_dict = {'name': '\\u738b\\u5927\\u4f73', 'age': 25}
result = decode_unicode_dict(my_dict)
print(result) # 输出:{'name': '王大佳', 'age': 25}
简单说就是:JSON数据用json.loads,普通字符串用encode().decode('unicode_escape')处理。
我知道这个参数啊,。我不明白啊
我不是找人给我翻译啊
<br>json.dumps(['汉字'], ensure_ascii=False)<br>
我那个是字典格式,你这里外面还嵌套一个列表?
json.dumps 方法没有 encoding 参数,你直接去掉就好了。。
要学会去看文档:
json.dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)
Python 3 的 json.dumps 返回的是 str 类型的 Unicode 字符串,所以不像 Python 2 需要 encoding 参数。
utf8 编码啊

