gpt4 book ai didi

python - 无法在 python 中删除某些嵌套的 JSON 对象

转载 作者:太空狗 更新时间:2023-10-30 00:44:08 24 4
gpt4 key购买 nike

我正在尝试遍历嵌套的 JSON 对象列表(通过 tweepy.api.search 从 twitter rest API 返回)并删除某些对象。我有一个要保留的对象列表。我希望指定保留哪些字典对象而不是删除哪些字典对象,因为不同的推文具有不同的键。它们都有一些键,例如“text”、“created_at”等...但还有一些只有某些推文才有的键。

我遇到了两个问题。

1) 遍历字典时无法删除字典项

2) 许多字典对象包含嵌套列表和字典,我无法访问这些对象

我正在遍历的 JSON 文件的一小部分:

{
"statuses": [
{
"contributors": null,
"coordinates": null,
"created_at": "Thu Nov 12 01:28:07 +0000 2015",
"entities": {
"hashtags": [],
"symbols": [],
"urls": [
{
"display_url": "twitter.com/thehill/status\u2026",
"expanded_url": "https://twitter.com/thehill/status/664581138975989761",
"indices": [
139,
140
],
"url": "https://t.co/9zfkg2FixZ"
}
],
"user_mentions": [
{
"id": 2517854953,
"id_str": "2517854953",
"indices": [
3,
19
],
"name": "It'sAlwaysPolitical",
"screen_name": "politicspodcast"
}
]
},
"favorite_count": 0,
"favorited": false,
"geo": null
}
]
}

“状态”列表中的每一项都是一条推文,每次调用返回 100 条推文。

我要保留的项目列表:

keepers_list = [tweetlist["statuses"][i]["coordinates"],
tweetlist["statuses"][i]["created_at"],
tweetlist["statuses"][i]["entities"]["urls"]
]

我正在尝试:

for item in tweetlist:
if item not in keepers_list:
del item

我已经尝试过这个确切的代码和它的更多变体/不同的方法,但我无法记忆起它,但无法使其工作。我看过很多关于这个主题的堆栈交换帖子,但无法根据我的目的调整其中任何一个。

我试过用

for key in dict.iterkeys(): ...
for value in dict.itervalues(): ...
for key, value in dict.iteritems():

但我无法让它们中的任何一个为我想做的事情工作。

任何帮助,或只是朝着正确方向的插入,我们将不胜感激。

最佳答案

永远不要在遍历列表时删除列表中的项目,您可以这样做

制作列表的副本以进行迭代:

for item in tweetlist[:]:
...

将您想要的结果保存在另一个列表中:

keep = []
for item in tweetlist:
if item in keepers_list:
keep.append(item)

关于python - 无法在 python 中删除某些嵌套的 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33746310/

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