Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以dict作为值的json转储_Python_Django_Json_Dictionary - Fatal编程技术网

Python 以dict作为值的json转储

Python 以dict作为值的json转储,python,django,json,dictionary,Python,Django,Json,Dictionary,清楚地解释了如何使用json和python dict发送响应。但是,该示例使用字符串作为该dict中的值类型。如果将dict作为值类型,将如何执行此操作?这是一个以dict作为值的dict。给它一个以dict作为值类型的dict >>> json.dumps({'foo': {'bar': 42}}) '{"foo": {"bar": 42}}' 为了澄清adityasdarma1的评论:这不是Python或Django的限制,而是JSON的限制。在JSON中,对象键必须始终

清楚地解释了如何使用json和python dict发送响应。但是,该示例使用字符串作为该dict中的值类型。如果将dict作为值类型,将如何执行此操作?这是一个以dict作为值的dict。

给它一个以dict作为值类型的dict

>>> json.dumps({'foo': {'bar': 42}})
'{"foo": {"bar": 42}}'

为了澄清adityasdarma1的评论:这不是Python或Django的限制,而是JSON的限制。在JSON中,对象键必须始终是字符串。JSON或JavaScript中没有“元组”类型;数组不能是键,因为它们是可变的。(在Python中,元组可以是dict键,但列表不能。)


不过我不知道你为什么需要这个。您可以以某种方式连接这些值以生成一个字符串键(例如
“baz”
),或者您可能需要一个更复杂的嵌套结构,其中
bar
作为外部dict的键,
baz
作为内部dict的键。如果看不到完整的数据结构,就很难给出进一步的建议。

我说得不够具体。我提到的dict的特定类型有一个元组作为键:json。dumps({'foo':{('bar','baz'):42})导致“TypeError:keys必须是字符串”字典的键不能是元组
('bar','baz')
无效。