gpt4 book ai didi

python - 使用条件循环遍历 JSON 对象

转载 作者:行者123 更新时间:2023-12-02 18:21:23 26 4
gpt4 key购买 nike

在循环遍历这个 json 对象 content 时遇到一些困难。json 文件是这样的:

[{'archived': False,
'cache_ttl': None,
'collection': {'archived': False,
'authority_level': None,
'color': '#509EE3',
'description': None,
'id': 525,
'location': '/450/',
'name': 'eaf',
'namespace': None,
'personal_owner_id': None,
'slug': 'eaf'},
'collection_id': 525,
'collection_position': None,
'created_at': '2022-01-06T20:51:17.06376Z',
'creator_id': 1,
'database_id': 4,
}, ... ]

我想遍历列表中的每个字典,检查集合是否为空,然后如果位置等于 '/450/' 则为每个集合返回将该字典附加到列表。

我的代码如下。

content = json.loads(res.text)
for q in content:
if q['collection']:
for col in q['collection']:
if col['location'] == '/450/':
data.append(q)

print(data)

玩弄它之后,我不断收到 ValueError: too many values to unpack (expected 2) TypeError: string indices must be integers非常感谢对我的结构的任何帮助。

免责声明:我之前将其写成列表推导式,它的工作原理非常棒,但它不再起作用了,因为我现在需要检查 collection 是否为空。我之前是怎么写的:

content = [ x for x in content if x['collection']['location'] == '/450/']

最佳答案

这应该适合你:

for q in content:
if q['collection']['location'] == '/450/':
data.append(q)

print(data)

如果您使用 for 循环和 for col in q['collection'],您只需迭代 q['collection'],所以 cols = ['archived', 'authority_level', ...]

关于python - 使用条件循环遍历 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70839658/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com