Google apiの応答から値を取得する必要があります。 私は次のようにJSONレスポンスを持っている:Python:Json辞書のリストから値を取得
for who in direct:
act_dist = (direct ["legs"][0]["distance"]["value"])
act_time2 = (direct2 ["legs"][0]["duration"]["value"])
:
direct =
[{
'summary': 'Jakarta Inner Ring Road/Jl. Pantura/Jl. Tol Pelabuhan',
'legs': [{
'duration': {'value': 2130, 'text': '36 mins'},
'via_waypoint': [],
'start_address': 'North Jakarta, North Jakarta City, Special Capital Region of Jakarta, Indonesia',
'duration_in_traffic': {'value': 2475, 'text': '41 mins'},
'end_address': 'West Jakarta, West Jakarta City, Special Capital Region of Jakarta, Indonesia',
'start_location': {'lat': -6.138709899999999, 'lng': 106.8640136},
'distance': {'value': 17777, 'text': '17.8 km'},
'traffic_speed_entry': [],
'end_location': {'lat': -6.168346199999999, 'lng': 106.7588346}
}]
}]
私はいくつかの方法を試してみたlegs
からduration
とdistance
のvalue
を取得する必要があり、これが私の最後のコードです
このエラーが発生する: *トレースバック(直近の最後のコール):
File "C:src/distance.py", line 34, in <module>
act_dist = (direct ["legs"][0]["distance"]["value"])
TypeError: list indices must be integers or slices, not str*
誰でもこの問題を解決できますか? おかげ
'direct'は' List'です。要素にアクセスするために文字列を使うことはできません。 –
'direct [0] [" legs "] [0] [" distance "] [" value "]'は動作するはずです。最初に 'direct'にインデックスを指定してください。 –