Google Place API Json данные с python - PullRequest
0 голосов
/ 29 мая 2020

Обновление: после многих часов проб и ошибок.

Мне удалось получить мой Google Places API json, называемый возвращаемыми данными, и свести его в список, который я могу проанализировать. Скорее всего, это не лучший способ. который, как я знаю, должен быть для прямого захвата данных из первого json возврата данных ??????

Вот мой код для возврата из данных json API Google. Я беру это и сокращаю поля и беру те поля, которые хочу в короткий список.)

shortlist = [] # list

результаты - это json данные из вызова API Google.

для места в places_result ['results']:

# определить идентификатор моего места

my_place_id = place['place_id']

#define the fields we want sent back to us
my_fields = ['name', 'formatted_phone_number', 'type']

#make a request for the details  drop some fields
place_details = gmaps.place(place_id = my_place_id, fields = my_fields) 

# сохранить результаты за пределами l oop в списке shortlist.append (place_details) # is список

Пример данных короткого списка:

данные короткого списка: всего 2 элемента списка, чтобы увидеть формат:

{'html_attributions': [], 'result': { 'formatted_phone_number': '(760) 864-9900', 'name': 'Palm Greens Cafe', 'types': ['cafe', 'restaurant', 'food', 'point_of_interest', 'store', 'заведение ']},' status ':' OK '} {' html_attributions ': [],' result ': {' formatted_phone_number ':' (760) 459-4555 ',' name ':' Город ie Бублики | Пекарня | Кафе ',' типы ': [' пекарня ',' продуктовый_или_супермаркет ',' кафе ',' ресторан ',' еда ',' point_of_interest ',' магазин ',' заведение ']},' статус ':' ОК '}

Я могу взять поля, которые мне нужны в этом l oop из короткого списка

#### работает список коротких результатов

i = 0 для x в коротком списке: попробуйте: find_name = shortlist [i] ['result'] ['name'] print (find_name) i = i + 1

except(KeyError):
    print('name error')
    i= i+1
    continue
#

вывод из for l oop:

Palm Greens Cafe Город ie Бублики | Пекарня | Кафе Starbucks Reserve McDonald's Cafe Jasmin Koffi Саут-Палм-Спрингс Starbucks MidMod Café Gré Coffee House & Art Gallery Vinny's Italian Ice, Frozen Custard + Ice Cream, Gelato и др. Ресторан и пекарня Starbucks Swiss Donut Starbucks Starbucks

Я потратил 2 дня, наконец, на этот тариф. Просто хотел получить предложения, есть ли более простой способ сделать это?

Я не смог заставить предложенные образцы работать из ответа до этого сообщения.

Спасибо за помощь. Билл С.

1 Ответ

1 голос
/ 29 мая 2020
  1. В зависимости от того, какую библиотеку вы используете, она может уже анализировать данные за вас и помещать их в поле .json. В противном случае, если это не поможет, вам действительно нужно будет использовать json.loads.

  2. Не уверен, что вы имеете в виду - в большинстве случаев вы будете обращаться к определенным полям в данных, например: data.json['result']['name']

    Если вам нужны все пары имя: значение в словаре, вы можете использовать: for name, value in data.json['result'].items()

...