json.dumps()不仅仅是从Python对象中生成一个
字符串 ,它还会在Type Conversion
Table之后始终生成一个
有效的
JSON字符串(假设对象内部的所有内容都是可序列化的)。
例如,如果其中一个值为
None,
str()则将生成一个无法加载的无效JSON:
>>> data = {'jsonKey': None}>>> str(data)"{'jsonKey': None}">>> json.loads(str(data))Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/System/Library/frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 338, in loads return _default_deprer.depre(s) File "/System/Library/frameworks/Python.framework/Versions/2.7/lib/python2.7/json/deprer.py", line 366, in depre obj, end = self.raw_depre(s, idx=_w(s, 0).end()) File "/System/Library/frameworks/Python.framework/Versions/2.7/lib/python2.7/json/deprer.py", line 382, in raw_depre obj, end = self.scan_once(s, idx)ValueError: Expecting property name: line 1 column 2 (char 1)
但
dumps()将转换
None为
null生成可以加载的有效JSON字符串:
>>> import json>>> data = {'jsonKey': None}>>> json.dumps(data)'{"jsonKey": null}'>>> json.loads(json.dumps(data)){u'jsonKey': None}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)