@masashiiii

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Google Places API 出力結果を用いたリスト探索はできるか?

Google Places API 出力結果を用いたリスト探索はできるか?

Google Places API 出力結果を用いたリスト探索はできるのか、教えて下さい。

やりたいこと(出力結果より)

{'business_status': 'CLOSED_TEMPORARILY',
              'geometry': {'location': {'lat': 35.6581518, 'lng': 139.6981574},
                           'viewport': {'northeast': {'lat': 35.65938313029149,
                                                      'lng': 139.6997901802915},
                                        'southwest': {'lat': 35.6566851697085,
                                                      'lng': 139.6970922197085}}},
              'icon': 'https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/generic_business-71.png',
              'name': '【出張マッサージ】THE FIVE SPA TOKYO',
              'permanently_closed': True,
              'photos': [{'height': 1112,
                          'html_attributions': ['<a '
                                                'href="https://maps.google.com/maps/contrib/101318912753876895101">【出 張マッサージ】THE '
                                                'FIVE SPA TOKYO</a>'],
                          'photo_reference': 'ATtYBwJ5Iggvzs4MXBw1VPDVPuO8tzD9SQejBXoOQloRXpnDEu4PXynXyZcJVjlDzaYbreXUGg6daFa_9d7TXwZvB6QyXw3cavt7HaqDW_lBtq2YcIR8pGQG8U8fySVAhXzxAxVgo05BWHHf5SCqgkgJr_afT8mG2Cr51YOMq_uCoVzfKZFo',
                          'width': 1472}],
              'place_id': 'ChIJ53Rkw9LzGGAR_nZh09m-l6w',
              'plus_code': {'compound_code': 'MM5X+77 Shibuya City, Tokyo, '
                                             'Japan',
                            'global_code': '8Q7XMM5X+77'},
              'rating': 4.6,
              'reference': 'ChIJ53Rkw9LzGGAR_nZh09m-l6w',
              'scope': 'GOOGLE',
              'types': ['spa', 'point_of_interest', 'establishment'],
              'user_ratings_total': 8,
              'vicinity': '12 Dogenzaka, Shibuya City'}],
 'status': 'OK'}

この中の、"types"のところだけを抽出して出力したいです。

自分で試したこと

print(types)
NameError: name 'types' is not defined

(そりゃそうだともなりますが、、、、)

0 likes

2Answer

型が分からないので辞書ライクな型だとして回答しますが、apiの戻り値を好きな変数に格納して(ここではaとします)

a = APIから得られた値書き換えてください
print(a['types'])

としたら出力できるのではないでしょうか。

0Like

Comments

  1. @masashiiii

    Questioner

    遅くなり申し訳ございません。

    結局できなかったので、もし可能であれば必要な情報のみを反映させることはできますか、、、?

まず、データについて、jsonとしては行儀の悪い部分に手を入れて、以下のように仮定します。

data
{"data": [{"business_status": "CLOSED_TEMPORARILY",
              "geometry": {"location": {"lat": 35.6581518, "lng": 139.6981574},
                           "viewport": {"northeast": {"lat": 35.65938313029149,
                                                      "lng": 139.6997901802915},
                                        "southwest": {"lat": 35.6566851697085,
                                                      "lng": 139.6970922197085}}},
              "icon": "https://maps.gstatic.com/mapfiles/place_api/icons/v1/png_71/generic_business-71.png",
              "name": "【出張マッサージ】THE FIVE SPA TOKYO",
              "permanently_closed": "True",
              "photos": [{"height": 1112,
                          "html_attributions": ["<a href=\"https://maps.google.com/maps/contrib/101318912753876895101\">【出 張マッサージ】THE FIVE SPA TOKYO</a>"],
                          "photo_reference": "ATtYBwJ5Iggvzs4MXBw1VPDVPuO8tzD9SQejBXoOQloRXpnDEu4PXynXyZcJVjlDzaYbreXUGg6daFa_9d7TXwZvB6QyXw3cavt7HaqDW_lBtq2YcIR8pGQG8U8fySVAhXzxAxVgo05BWHHf5SCqgkgJr_afT8mG2Cr51YOMq_uCoVzfKZFo",
                          "width": 1472}],
              "place_id": "ChIJ53Rkw9LzGGAR_nZh09m-l6w",
              "plus_code": {"compound_code": "MM5X+77 Shibuya City, Tokyo, Japan",
                            "global_code": "8Q7XMM5X+77"},
              "rating": 4.6,
              "reference": "ChIJ53Rkw9LzGGAR_nZh09m-l6w",
              "scope": "GOOGLE",
              "types": ["spa", "point_of_interest", "establishment"],
              "user_ratings_total": 8,
              "vicinity": "12 Dogenzaka, Shibuya City"}],
 "status": "OK"}

このような、行儀の良いjsonデータであれば、pythonでの処理は容易になります。

code
import json
with open('places.json', encoding='utf_8') as json_file:
    data = json.load(json_file)
print(data['data'][0]['types'])

以上のデータとコードで、以下の結果が得られます。

result
['spa', 'point_of_interest', 'establishment']

これがお望みのものでしょうか?

0Like

Your answer might help someone💌