みやけん忘備録

あれどうやるんだっけ、を無くすために。

TypeError: list indices must be integers, not strがわからんかったけどどうにか出来た

PythonGoogle Maps Elevation APIで、
位置情報から高度を取得してDBに書き込むやつを作ってたんだけど、まあ上手く動かない。
文系学部に籍を置いている身、
ココで限界かなあと変に鬱ってたら、海外サイトにヒントが。
とりあえずそれで動いたのでメモっとく。

以下のコードは必要なところだけ切り取ったやつ。

import json
import urllib2

url = 'https://maps.googleapis.com/maps/api/elevation/json?locations="lat","lng"+ '&key="YOUR KEY"
r = urllib2.urlopen(url)
gapi = json.loads(r.read())
elv = gapi["results"]["elevation"]
print (elv)

私こう書いちゃって、

TypeError: list indices must be integers, not str

と出た。

しばらく探していたら、何番目の情報を扱ってるのかわからなかったっぽいとのことで、
6行目を

elv = gapi["results"][0]["elevation"]

としたら普通に動いた。よかった。

繰り返しで書く方法もあるとのこと。

わけがわからないよ