我在python中有一个字典,下面有一个字符串变量(当然在json中有很多其他字符串字段,但只有少数是json转义字符串)
duplicate
如何将这样的对象转换为普通的json,如下所示:
obj_dict = dict(details="{\"name\":\"Vyshakh\",\"martial_status\" : \"Single\"}")
在使用Jackson的Java中我可以使用@JsonRawValue注释一个字段,Python中实现相同的最佳方法是什么
答案 0 :(得分:1)
重写编码器以返回原始json字符串。
import json
class RawJSON(str): pass
origEnc = json.encoder.encode_basestring_ascii
def rawEnc(obj):
if isinstance(obj, RawJSON):
return obj
return origEnc(obj)
json.encoder.encode_basestring_ascii = rawEnc
obj_dict = dict(details=RawJSON("{\"name\":\"Vyshakh\",\"martial_status\" : \"Single\"}"))
print json.dumps(obj_dict) # {"details": {"name":"Vyshakh","martial_status" : "Single"}}
答案 1 :(得分:0)
标准库中的json
模块具有json.loads()
。
将JSON兼容字符串传递给json.loads()
,它将返回一个字典对象。
来自Python解释器:
>>> import json
>>> help(json.loads)
Help on function loads in module json:
loads(s, encoding=None, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)
Deserialize ``s`` (a ``str`` instance containing a JSON
document) to a Python object.