我想要迭代一些JSON文本,格式如下:
{
"itemsPerPage": 45,
"links": {
"next": "https://www.12345.com"
},
"list": [
{
"id": "333333",
"placeID": "63333",
"description": " ",
"displayName": "test-12345",
"name": "test",
"status": "Active",
"groupType": "Creative",
"groupTypeV2": "Public",
"memberCount": 1,
},
{
"id": "32423",
"placeID": "606",
"description": " ",
"displayName": "test123",
"name": "test",
"status": "Active",
"groupType": "Creative",
"groupTypeV2": "Private",
"memberCount": 1,
},
我正在尝试遍历此列表,并获取displayName,但是我的代码无法识别所有不同的显示名称。这是我的代码:
for i in range(len(json_obj['list'])):
if (json_obj['list'][i]['displayName'] == "some id"):
do stuff
else:
exit()
如何修复语句,以便成功遍历json obj?
答案 0 :(得分:0)
虽然您发布的JSON无效,但我会假设您最后留下了一些东西。
for entry in dataset['list']:
print(entry['displayName'])
将遍历您的JSON数据。
如果你想要do_stuff(),如果它匹配某个值:
for entry in dataset['list']:
if entry['displayName'] == 'test-12345':
do_stuff()
答案 1 :(得分:0)
这对我有用。
import json
text = """{
"itemsPerPage": 45,
"links": {
"next": "https://www.12345.com"
},
"list": [
{
"id": "333333",
"placeID": "63333",
"description": " ",
"displayName": "test-12345",
"name": "test",
"status": "Active",
"groupType": "Creative",
"groupTypeV2": "Public",
"memberCount": 1
},
{
"id": "32423",
"placeID": "606",
"description": " ",
"displayName": "test",
"name": "test",
"status": "Active",
"groupType": "Creative",
"groupTypeV2": "Private",
"memberCount": 1
}]}"""
data = json.loads(text)
for item in data['list']:
if 'displayName' in item:
print(item['displayName'])
答案 2 :(得分:0)
您需要在循环中实际执行操作。 Python依赖空格来表示块。在编写Python时,这是你不能忘记的。
for i in range(len(json_obj['list'])):
if (json_obj['list'][i]['displayName'] == "some id"):
do stuff
else:
exit()
应该是
for i in range(len(json_obj['list'])):
if (json_obj['list'][i]['displayName'] == "some id"):
do stuff
else:
exit()