Ich versuche, eine Liste verschachtelter JSON-Objekte (die von der Twitter-Rest-API über tweepy.api.search zurückgegeben wurden) zu durchlaufen und bestimmte Objekte zu löschen. Ich habe eine Liste mit Objekten, die ich behalten möchte. Ich möchte angeben, welche Wörterbuchobjekte beibehalten und nicht gelöscht werden sollen, da verschiedene Tweets unterschiedliche Schlüssel haben. Sie haben alle einige Schlüssel wie "text", "created_at", etc ... aber es gibt andere Schlüssel, die nur bestimmte Tweets haben.Problem beim Löschen bestimmter verschachtelter JSON-Objekte in Python
Ich laufe auf zwei Probleme.
1) Ich kann nicht ein Wörterbuch Element löschen, während sie durch das Wörterbuch Iterieren
2) Viele der Dictionary-Objekte enthalten verschachtelte Listen und Wörterbücher, die Ich habe Probleme beim Zugriff auf
Ein kleiner Teil der JSON-Datei ich Iterieren durch:
{
"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
}
]
}
Jeder Eintrag in der Liste „Zustände“ ein Tweet ist, und es gibt 100 Tweets pro Anruf zurückgegeben.
Liste der Gegenstände, die ich behalten möchten:
keepers_list = [tweetlist["statuses"][i]["coordinates"],
tweetlist["statuses"][i]["created_at"],
tweetlist["statuses"][i]["entities"]["urls"]
]
Ich versuche zu tun:
for item in tweetlist:
if item not in keepers_list:
del item
Ich habe versucht, genau dieses Code und mehr Variationen davon/verschiedene Methoden als ich erinnern, aber es kann nicht funktionieren. Ich habe mir zu diesem Thema zahlreiche Stack-Exchange-Beiträge angesehen, die ich aber nicht für meinen Zweck anpassen konnte.
Ich habe versucht,
for key in dict.iterkeys(): ...
for value in dict.itervalues(): ...
for key, value in dict.iteritems():
verwenden, aber ich kann nicht von ihnen machen arbeiten, was ich tun möchte.
Jede Hilfe oder nur ein Stoß in die richtige Richtung würde sehr geschätzt werden.
Ich glaube 'key: tweet_list [k]' sollte 'key: tweet_list [key]' sein? –
Richtig, das habe ich vermisst, danke. – Greg