在Python中匹配JSON

2024-06-26 04:14:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我不太懂编程,我确信我的方法是完全错误的,但是我正在尝试将JSON导入python,然后搜索它。JSON来自一个总线跟踪器网站。我主要了解如何导入数据,但我不知道如何使用它。这就是我现在所拥有的。在

import requests
r = requests.get('http://bustracker.tulsatransit.org/Services/JSONPRelay.svc/GetRouteVehicleEstimates')
data = r.json()

stop = requests.get('http://bustracker.tulsatransit.org/Services/JSONPRelay.svc/GetStops')
stops = stop.json()


def stopname(id):
 for i in stops:
    if i['RouteStopID'] == id:
        return i['Description'], id
    else:
        return "i dont know", i['RouteStopID'], id        


for i in data:
 for i in i['Vehicles']:
    print i['Name']
    for i in i['Estimates']:
        u = i['RouteStopID']
        print stopname(i['RouteStopID']) , (i['SecondsToStop']/60)

我不明白如何通过编号的对象。我用的是“为我”,但它看起来凌乱而错误?最后,我希望能够列出特定路线的估计时间。有没有办法把对象赋给变量?所以我可以打电话说我[名字]否则哪里没有“为我”的混乱?我能把它变成函数吗?在

我的另一个问题是估算路由JSON没有包含StopID键的描述。我也不知道怎么做,但我想出了def stopname函数来搜索stopID并返回描述。但它似乎没有正确地穿过不同的物体。在

我到处找了找,但找不到这样的例子。在

谢谢!在


Tags: inorgidjsonhttpforget错误
1条回答
网友
1楼 · 发布于 2024-06-26 04:14:38

为stops返回的json似乎是一个dict列表。如果我理解您的要求,您希望能够找到一个stop by id,而不是问“这是数组中正确的对象吗?”。在

将停止转换为dict,在RouteStopID上键入:

stop_dict = {x['RouteStopID']: x for x in stops}  # Dictionary Comprehension

然后,您可以在一个请求中返回相应的停止信息,而不是在列表中循环询问这是我的停止吗?在

例如,获取stop ID 2信息:

^{pr2}$

相关问题 更多 >