Отображение данных forsquare в json в Python

Я работаю над извлечением из Foursquare данных, связанных с местами проведения (например: количество фотографий для каждого места, количество чаевых, рейтинг, количество оценок, лайков и т. д.). Я использовал этот код для извлечения одного идентификатора места проведения, который хорошо работает при сканировании нужных данных.

url3 = 'https://api.foursquare.com/v2/venues/{}?&client_id = {}&client_secret = {}&v = {}'.format(venue_id908, CLIENT_ID, CLIENT_SECRET, VERSION)
res1 = requests.get(url3).json()
print(res1['response']['venue'].keys())
stats = json_normalize(stats)

Однако, когда я пытаюсь создать функцию для получения данных для списка идентификаторов места проведения, я получаю сообщение об ошибке ['место проведения »]. Это функция, которую я использовал:

def getvenuesstats(i): 
id_list = []

for i in zip(id_list):
    url = 'https://api.foursquare.com/v2/venues/{}?&client_id = {}&client_secret = {}&v = {}'.format(i, CLIENT_ID, CLIENT_SECRET, VERSION, LIMIT)
    results = requests.get(url).json()
    stats = results['response']['venue']
    id_list.append([(photos_count,
                     tipscount,
                     rating,
                     raters,
                     likes,
                     dislikes,
                     checkins,
                     v['venue']['photos']['count'],
                     v['venue']['stats']['tipCount'],
                     v['venue']['rating'],
                     v['venue']['ratingSignals'],
                     v['venue']['likes']['count'],
                     v['venue']['dislike'],
                     v['venue']['beenHere']['count']) for v in stats             
    ])
stats_venues = pd.DataFrame([item for id_list in id_list for item in id_list])
return(stats_venues)

... который возвращает ключевую ошибку "место проведения".

Я был бы очень признателен за вашу помощь, и я почти уверен, что есть простой выход из этой ошибки. Я просто не вижу этого. Заранее огромное спасибо за то, что нашли время изучить мою проблему, и если что-то неясно, пожалуйста, дайте мне знать.

Необходимые данные для некоторых идентификаторов могут не существовать, вы можете распечатать i перед этой строкой, чтобы проверить, какой идентификатор не работает.

NaWeeD 21.11.2018 10:20

Навид, спасибо. Я проверил это заранее. Все идентификаторы действительны и должны получать данные json для всех строк.

Cam 21.11.2018 18:55
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
379
1

Ответы 1

Вы уже входите в состав venue, когда определяете статистику.

def getvenuesstats(i): 
id_list = []

for i in zip(id_list):
    url = 'https://api.foursquare.com/v2/venues/{}?&client_id = {}&client_secret = {}&v = {}'.format(i, CLIENT_ID, CLIENT_SECRET, VERSION, LIMIT)
    results = requests.get(url).json()
    stats = results['response']['venue']
    id_list.append([(photos_count,
                     tipscount,
                     rating,
                     raters,
                     likes,
                     dislikes,
                     checkins,
                     v['photos']['count'],
                     v['stats']['tipCount'],
                     v['rating'],
                     v['ratingSignals'],
                     v['likes']['count'],
                     v['dislike'],
                     v['beenHere']['count']) for v in stats             
    ])
stats_venues = pd.DataFrame([item for id_list in id_list for item in id_list])
return(stats_venues)

Привет, Джейкоб, Большое спасибо за ответ. Кажется, это помогло решить часть проблемы. Однако теперь я не получаю значений по всему списку идентификаторов. до сих пор пробую всевозможные версии. Спасибо хоть

Cam 21.11.2018 18:54

Другие вопросы по теме