#python #json #tweepy
#python #json #tweepy
Вопрос:
У меня есть вывод json из Tweepy, который я сейчас пытаюсь проанализировать. Например, некоторые выходные данные являются трендовыми хэштегами для определенной области. Поскольку это большой результат, я пытаюсь определить, как эффективно анализировать все хэштеги. В выводе json есть другая информация, такая как userid
, countrycode
и т.д… Но меня интересуют только хэштеги, которые перечислены как name: '#gamenight
например.
# using Tweepy
api.trends_place(2295420)
import json
# Here is a portion of the Tweepy output I received
trends = [{'trends': [{'name': '#RCBvKKR', 'url': 'http://twitter.com/search?q=#RCBvKKR', 'promoted_content': None, 'query': '#RCBvKKR', 'tweet_volume': 101508}, {'name': 'created_at': '2019-04-06T00:07:14Z', 'locations': [{'name': 'Bangalore', 'woeid': 2295420}]}]
hashtags = json.dumps(trends)
# Am trying to end up with a way of just extracting 'name' which I believe is how the hashtags are captured
print(hashtags['name'])
Ответ №1:
Это должно быть hastags["trends"][0]["name"]
для получения #RCBvKKR
Хорошо, я это исправил. Во-первых, опубликованный код сбивает с толку. Опубликованный вами json недопустим (скобки отсутствуют, а ключ name не имеет значения). Во-вторых, с помощью вашей команды json.dumps(trends)
вы преобразуете уже действительный словарь python в строку, которая является массивом, таким образом, ошибка, ( string indices must be integers
)
Фиксированная версия выглядит следующим образом:
import json
trends = [{'trends': [{'name': '#RCBvKKR', 'url': 'http://twitter.com/search?q=#RCBvKKR', 'promoted_content': None, 'query': '#RCBvKKR', 'tweet_volume': 101508}, {'name':"This was missing", 'created_at': '2019-04-06T00:07:14Z', 'locations': [{'name': 'Bangalore', 'woeid': 2295420}]}]}]
print(trends[0]["trends"][0]["name"])
Теперь вывод #RCBvKKR
Если вы действительно получаете строку json из API, используйте json.parse(response)
для преобразования строки в python dict.
Комментарии:
1. Я получил еще одну ошибку TypeError: строковые индексы должны быть целыми числами
2. @Tweep, да, я это исправил
3. Я думаю, что я неправильно пометил полученный мной вывод Tweepy как JSON, на самом деле не зная, было это или нет. Я все еще пытаюсь определить, в каком формате выводится Tweepy для api.trends_place. т. Е. Это массив, хэш, json?
4. Я также пытаюсь получить каждый экземпляр ‘name’, а не только ‘#RCBvKRR’