Python原始json字符串序列化

2024-06-16 09:30:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python编写了一个字典,其中有一个字符串变量,如下所示(当然,json中还有许多其他字符串字段,但只有少数是json转义字符串)

obj_dict = dict(details="{\"name\":\"Vyshakh\",\"martial_status\" : \"Single\"}")

如何将此类对象转换为普通json,如下所示:

^{pr2}$

在使用Jackson的Java中,我可以使用@JsonRawValue对字段进行注释,在Python中实现同样效果的最佳方法是什么


Tags: 对象字符串namejsonobj字典statusjava
2条回答

来自标准库的json模块有json.loads()用于此操作。在

将JSON兼容字符串传递给json.loads(),它将返回dictionary对象。在

从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.

重写编码器以返回原始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"}}

相关问题 更多 >