背景
じゃらんAPI使ってWebアプリを作りたいです。
最初にじゃらんAPIを叩いて、そのリザルトを値段順に並べたいと考えています。
やったこと
Python
1import requests 2# 人間が使いやすいHTTPライブラリをimportする 3import json 4# jsonを使うからjsonモジュールをimportする 5import xmltodict 6# じゃらんAPIはデフォルトでXML形式で出力するからxmlを辞書型に変換するためにこれが必要 7key = "******" 8# APIkeyは自分の受け取ったものを使う 9url = 'http://jws.jalan.net/APIAdvance/StockSearch/V1/?key=******&s_area=137412&?screenId=UWW1402&distCd=01&contHideFlg=1&idx=0&photo=1&rootCd=041&stayYear=2018&stayMonth=4&stayDay=14&stayCount=1&roomCount=1&adultNum=2&roomCrack=200000&childPriceFlg=0,0,0,0,0&kenCd=120000&lrgCd=121100&mvTabFlg=1&vosFlg=2&activeSort=1&count=1' 10# URLは空き室検索APIのサンプルリクエストURLを用いた 11response = requests.get(url) 12# これで取得する 13xml = response.text 14# 取得したものをエンコードする(xml形式で出力される) 15result = xmltodict.parse(xml) 16# xml形式のデータを辞書型に変換する 17result_json = json.dumps(result, indent=5, ensure_ascii=False) 18# json型にエンコードする 19PRICE = result_json["Results"]["Plan"]["SampleRate"] 20# とりあえず値段の値を取得したい
出力結果 Traceback (most recent call last): line 10, in <module> PRICE = result_json["Results"]["Plan"]["SampleRate"] TypeError: string indices must be integers
エラーが出たので手動で辞書型で入力しました
Python
1data = { 2 "Results": { 3 "@xmlns": "jws", 4 "NumberOfResults": "658", 5 "DisplayPerPage": "1", 6 "DisplayFrom": "1", 7 "APIVersion": "1.2", 8 "Plan": { 9 "PlanName": "【 素泊まり 】2016年12月1日オープン!JR山手線・京成線「 日暮里 」駅から徒歩2分!", 10 "PlanCD": "02198165", 11 "RoomName": "シングル 禁煙室", 12 "RoomCD": "0360449", 13 "Facilities": { 14 "Facility": [ 15 "シングル", 16 "部屋でインターネット", 17 "禁煙ルーム", 18 "バス", 19 "トイレ" 20 ] 21 }, 22 "PlanCheckIn": "15:00", 23 "PlanCheckOut": "11:00", 24 "SplyPeriodStrDay": "20161201", 25 "SplyPeriodEndDay": "20190331", 26 "PlanPictureURL": "http://www.jalan.net/jalan/images/pictM/Y0/Y305220/Y305220027.jpg", 27 "PlanPictureCaption": "シングルルーム", 28 "Meal": "食事なし", 29 "RateType": "大人1名あたり", 30 "SampleRate": "5000", 31 "ServiceChargeRate": "0", 32 "Hotel": { 33 "HotelID": "305220", 34 "HotelName": "アパホテル<TKP日暮里駅前>", 35 "PostCode": "116-0014", 36 "HotelAddress": "東京都荒川区東日暮里5-52-9", 37 "Area": { 38 "Region": "首都圏", 39 "Prefecture": "東京都", 40 "LargeArea": "上野・浅草・両国", 41 "SmallArea": "荒川・足立" 42 }, 43 "HotelType": "ホテル", 44 "HotelCatchCopy": "【2016/12/1日暮里駅前にオープン!】成田空港まで40分乗換なし!", 45 "HotelCaption": "【日暮里駅南改札より2分!】山手線で新宿・上野まで乗換えなし。飲食店やコンビニも近く出張・観光の拠点に◎全室50インチ以上の大型TV!自分だけの快適空間を。忙しい朝もフリーチェックアウトで1秒出発♪", 46 "PictureURL": "http://www.jalan.net/jalan/images/pictM/Y0/Y305220/Y305220021.jpg", 47 "PictureCaption": "外観【夜】", 48 "X": "503193484", 49 "Y": "128606098", 50 "HotelNameKana": "あぱほてるてぃーけーぴーにっぽりえきまえ", 51 "NumberOfRatings": "93", 52 "Rating": "4" 53 } 54 } 55 } 56} 57 58PRICE = data["Results"]["Plan"]["SampleRate"] 59print(PRICE)#5000 60
この違いがどうして出てしまうのでしょうか。調べると、それっぽいことが出てくるのですが、何を行っているのかわかりません。どなたかご教授下さい????
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/10 08:13
2018/04/10 08:31