python2.7
>>>json.dumps(x.values())
'[{"name": "Michael"}, {"name": "Mark"}]'
不同之处在于values方法返回的结果:
# Python 2.7.10
>>> x.values()
[{'name': 'Michael'}, {'name': 'Mark'}]
# Python 3.6.0
>>> x.values()
dict_values([{'name': 'Mark'}, {'name': 'Michael'}])
>>>
python 3 不再返回数组,而是在数据周围使用dict_values包装器。
我们只需要用对list的调用来包装对values的调用:
>>> json.dumps(list(x.values()))
'[{"name": "Mark"}, {"name": "Michael"}]'
本文介绍了Python2和Python3中dict.values()方法返回结果的不同,Python3不再直接返回列表,而是使用dict_values包装器。为了解决在Python3中将dict_values序列化为JSON的问题,可以通过转换为list来实现。解决方案是使用list(x.values()),这使得JSON.dumps()可以正确序列化。
599

被折叠的 条评论
为什么被折叠?



