我正在尝试将下面提到的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就可以将字符串转换为dict
或list
。
更新后的代码看起来像:
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'}}
这是一本又一本字典。
谢谢