gpt4 book ai didi

python - json.dumps/loads 和 tornado.escape.json_encode/json_decode 有什么区别?

转载 作者:太空狗 更新时间:2023-10-29 20:46:00 26 4
gpt4 key购买 nike

看起来他们的行为方式完全相同。

>>> data
[('a', 'b'), {'a': 1, 'b': 2}, ['a', 'b'], 'a', 'b']
>>> json.dumps(data)
'[["a", "b"], {"a": 1, "b": 2}, ["a", "b"], "a", "b"]'
>>> tornado.escape.json_encode(data)
'[["a", "b"], {"a": 1, "b": 2}, ["a", "b"], "a", "b"]'
>>> json.loads(json.dumps(data))
[[u'a', u'b'], {u'a': 1, u'b': 2}, [u'a', u'b'], u'a', u'b']
>>> tornado.escape.json_decode(json.dumps(data))
[[u'a', u'b'], {u'a': 1, u'b': 2}, [u'a', u'b'], u'a', u'b']

最佳答案

有时阅读 the source code 很有用:

def json_encode(value):
return json.dumps(value).replace("</", "<\\/")

def json_decode(value):
return json.loads(to_basestring(value))

def to_basestring(value):
if isinstance(value, _BASESTRING_TYPES):
return value
assert isinstance(value, bytes_type)
return value.decode("utf-8")

to_basestring 是 python 3.x 最需要的,以确保 value 的类型为 str,而不是 bytes ,因为 json.loads 无法处理后者。

关于python - json.dumps/loads 和 tornado.escape.json_encode/json_decode 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16228427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com