我有一个从Twitter API收集的推文列表。
列表中的每条推文都是字典形式。
我想将此文件中的所有字符串'en-gb'更改为'en'。
以下是两条推文的列表:
twitter_tweets =
[{'created_at': 'Wed Oct 18 22:20:30 +0000 2017', 'id': 920776631102214144, 'user': {'id': 119116331, 'statuses_count': 32796, 'verified': False, 'lang': 'en-'}, 'retweet_count': 0, 'favorite_count': 0}
{'created_at': 'Wed Oct 17 12:20:36 +0000 2017', 'id': 920776631106514144, 'user': {'id': 119159331, 'statuses_count': 32796, 'verified': False, 'lang': 'en-gb'}, 'retweet_count': 1, 'favorite_count': 2}]
请注意“en-gb”字符串的位置:
虽然每条推文都是字典,但关键字“用户”却有一个辅助字典作为其值。辅助词典中的一个关键词是'lang'(语言),其值有时是'en-gb'(“英国英语”)。
我想将所有值'en-gb'更改为'en'。
我试过这个,但无济于事:
for item in enumerate(twitter_tweets):
for item == 'en-gb':
item = 'en'
答案 0 :(得分:2)
您可以通过遍历列表来替换它们
{{1}}
答案 1 :(得分:0)
你可以试试这个:
tweets = [{'created_at': 'Wed Oct 18 22:20:30 +0000 2017', 'id': 920776631102214144, 'user': {'id': 119116331, 'statuses_count': 32796, 'verified': False, 'lang': 'en-'}, 'retweet_count': 0, 'favorite_count': 0}, {'created_at': 'Wed Oct 17 12:20:36 +0000 2017', 'id': 920776631106514144, 'user': {'id': 119159331, 'statuses_count': 32796, 'verified': False, 'lang': 'en-gb'}, 'retweet_count': 1, 'favorite_count': 2}]
final_tweets = [{"created_at":i["created_at"], "id":i["id"], "user":{a:"en" if b == "en-gb" else b for a, b in i["user"].items()}} for i in tweets]
输出:
[{'created_at': 'Wed Oct 18 22:20:30 +0000 2017', 'id': 920776631102214144, 'user': {'lang': 'en-', 'statuses_count': 32796, 'verified': False, 'id': 119116331}}, {'created_at': 'Wed Oct 17 12:20:36 +0000 2017', 'id': 920776631106514144, 'user': {'lang': 'en', 'statuses_count': 32796, 'verified': False, 'id': 119159331}}]