json.loads函数没有给出python字典



我正在尝试将下面提到的json字符串转换为python字典。我使用的是python 3的json包。这是我正在使用的代码:

a = "[{'id': 35, 'name': 'Comedy'}, {'id': 18, 'name': 'Drama'}, {'id': 10751, 'name': 'Family'}, {'id': 10749, 'name': 'Romance'}]"
b = json.loads(json.dumps(a))
print(type(b))

我从上面的代码中得到的输出是:

<类"str">

我在stackoverflow中看到了类似的问题,但为这些问题提供的解决方案不适用于我的案例。

您试图转换的json字符串格式不正确。此外,您只需要调用json.loads就可以将字符串转换为dictlist

更新后的代码看起来像:

import json
a = '[{"id": 35, "name": "Comedy"}, {"id": 18, "name": "Drama"}, {"id": 10751, "name": "Family"}, {"id": 10749, "name": "Romance"}]'
b = json.loads(a)
print(type(b))

希望这能解释为什么你没有得到预期的结果。

JSON数组包含在[ ]中,而JSON对象则包含在{ }

a中的字符串是json数组,因此您只能将其更改为列表

您的键和值应该用双引号括起来,这是使用python的json库的要求。

b = json.loads(a)将给出字典对象的列表。

要获得更多的字典,您需要将一个关键字与每个单独的字典相关联。

d = dict()
ind = 0
for data in b:
d[ind] = data
ind+=1

现在,您得到的输出将是
{0: {'id': 35, 'name': 'Comedy'}, 1: {'id': 18, 'name': 'Drama'}, 2: {'id': 10751, 'name': 'Family'}, 3: {'id': 10749, 'name': 'Romance'}}

这是一本又一本字典。

谢谢

最新更新