Sto tentando di eseguire l'iterazione attraverso un elenco di oggetti JSON nidificati (restituiti dall'API twitter rest tramite tweepy.api.search) ed eliminare determinati oggetti. Ho una lista di oggetti da conservare. Desidero specificare quali oggetti del dizionario conservare e quali eliminare perché i diversi tweet hanno chiavi diverse. Tutti hanno alcune chiavi come "text", "created_at", ecc ... ma ci sono altre chiavi che solo alcuni tweet hanno.Problemi nell'eliminazione di determinati oggetti JSON nidificati in python
Sto riscontrando due problemi.
1) Non posso cancellare una voce del dizionario, mentre scorrendo il dizionario
2) Molti degli oggetti del dizionario contiene liste nidificate e dizionari che io sto avendo problemi ad accedere
Una piccola porzione del file JSON sto scorrendo:
{
"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
}
]
}
Ogni elemento nella lista "status" è un tweet, e ci sono 100 tweets restituiti per ogni chiamata.
elenco di elementi che voglio mantenere:
keepers_list = [tweetlist["statuses"][i]["coordinates"],
tweetlist["statuses"][i]["created_at"],
tweetlist["statuses"][i]["entities"]["urls"]
]
che sto cercando di fare:
for item in tweetlist:
if item not in keepers_list:
del item
Ho provato questo codice esatto e più varianti su di esso metodi/diverse di quanto io possa ricorda, ma non può farlo funzionare. Ho esaminato numerosi post di scambio di stack su questo argomento, ma non sono stato in grado di adattare nessuno di loro al mio scopo.
Ho provato con
for key in dict.iterkeys(): ...
for value in dict.itervalues(): ...
for key, value in dict.iteritems():
ma non riesco a fare qualsiasi di loro lavorano per quello che voglio fare.
Qualsiasi aiuto, o solo una spinta nella giusta direzione, sarebbe molto apprezzato.
Credo che "chiave: tweet_list [k]' dovrebbe essere 'chiave: tweet_list [chiave]'? –
Esatto, l'ho perso, grazie. – Greg