我有一个像这样的对象:
obj1 = {
'k1' : 'v1',
'k2' : [
{
'k21' : '中文字符'
}
]
}
我想将其转换为类似的字符串:
'''{ 'k1' : 'v1', 'k2' : [ { 'k21' : '中文字符' } ] } '''
使用str()给我这个:
'''{'k2': [{'k21': '\xe4\xb8\xad\xe6\x96\x87\xe5\xad\x97\xe7\xac\xa6'}], 'k1': 'v1'}'''
请注意' \ xe4'有四个字符。我猜str()只是调用repr()。
一种解决方案是移动对象的所有键并递归处理它。我想知道有没有其他方法来实现它。比如转换' \ xe4'到'中'或直接将obj1转换为例外结果。
谢谢!
答案 0 :(得分:1)
与@Cyber建议的一样,使用json
将是一个选项,如下所示:
import json
In [11]: obj1 = {
...: 'k1' : 'v1',
...: 'k2' : [
...: {
...: 'k21' : '中文字符'
...: }
...: ]
...: }
# remember to set ensure_ascii=False
In [12]: s = json.dumps(obj1, ensure_ascii=False)
In [13]: print s
{"k2": [{"k21": "中文字符"}], "k1": "v1"}
我在 Python 2.7.8