簡體   English   中英

Python:從Json字典列表中獲取價值

[英]Python : Get value from a list of Json dictionary

我需要從Google API響應中獲取值。 我有json響應,如下所示:

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}
         }]
}]

我需要獲取duration和到legs distancevalue

我嘗試了幾種方法,這是我的最后一個代碼:

for who in direct:
    act_dist = (direct ["legs"][0]["distance"]["value"])
    act_time2 = (direct2 ["legs"][0]["duration"]["value"])

並得到以下錯誤:* Traceback(最近一次通話):

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*

任何人都可以幫助解決這個問題嗎? 謝謝

您的代碼實際上應該是:

for who in direct:
    act_dist = (who ["legs"][0]["distance"]["value"])
    act_time2 = (who ["legs"][0]["duration"]["value"])
for d in direct:
    for l in d['legs']:
        print l['duration']
        print l['distance']

您需要遍歷所有列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM