Tôi đang cố gắng lặp qua danh sách đối tượng JSON lồng nhau (được trả về từ API phần còn lại twitter qua tweepy.api.search) và xóa một số đối tượng nhất định. Tôi có một danh sách các đồ vật cần giữ. Tôi muốn chỉ định các đối tượng từ điển nào cần giữ thay vì xóa đối tượng nào vì các tweet khác nhau có các khóa khác nhau. Họ đều có một số phím như "văn bản", "created_at", vv ... nhưng có các phím khác mà chỉ có một số tweet có.Gặp sự cố khi xóa một số đối tượng JSON lồng nhau trong python
Tôi đang gặp phải hai sự cố.
1) Tôi không thể xóa một mục từ điển trong khi lặp lại thông qua từ điển
2) Nhiều người trong số các đối tượng từ điển chứa danh sách lồng nhau và từ điển mà tôi đang gặp khó khăn tiếp cận
Một phần nhỏ của tập tin JSON Tôi đang duyệt qua:
{
"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
}
]
}
Mỗi mục trong danh sách "trạng thái" là một tweet và có 100 tweet được trả về cho mỗi cuộc gọi.
Danh sách các mục mà tôi muốn giữ:
keepers_list = [tweetlist["statuses"][i]["coordinates"],
tweetlist["statuses"][i]["created_at"],
tweetlist["statuses"][i]["entities"]["urls"]
]
Tôi cố gắng để làm:
for item in tweetlist:
if item not in keepers_list:
del item
Tôi đã thử mã chính xác này và các biến thể thêm về nó/phương pháp khác nhau hơn tôi có thể nhớ lại, nhưng không thể làm cho nó hoạt động. Tôi đã xem xét nhiều bài viết trao đổi ngăn xếp về chủ đề này, nhưng đã không thể thích nghi bất kỳ bài viết nào với mục đích của tôi.
Tôi đã cố gắng sử dụng
for key in dict.iterkeys(): ...
for value in dict.itervalues(): ...
for key, value in dict.iteritems():
nhưng tôi không thể thực hiện bất kỳ trong số họ làm việc cho những gì tôi muốn làm.
Bất kỳ trợ giúp nào hoặc chỉ cần đẩy theo đúng hướng sẽ được đánh giá cao.
Tôi tin rằng 'khóa: tweet_list [k] 'phải là' khóa: tweet_list [key] '? –
Đúng, tôi đã bỏ lỡ điều đó, cảm ơn bạn. – Greg