【问题标题】:How to treat response objects in python?如何处理python中的响应对象?
【发布时间】:2015-03-27 20:40:19
【问题描述】:

好的,我使用回复命令得到了回复

reply = requests.get(http://api.eve-central.com/api/route/from/Jita/to/New Caldari

我无法处理收到的数据,隔离我想要的数据。 例如如何获取to: region: regionid:路径的值?

这是我使用print reply.json() 得到的(reply.json() 的类型是列表):

[{u'to':
{u'region':
{u'regionid': 10000002, u'name': u'The Forge'},
u'security': 1.0, u'systemid': 30000145, u'name': u'New Caldari', u'constellationid': 20000020},
u'from':
{u'region':
{u'regionid': 10000002, u'name': u'The Forge'},
u'security': 0.9, u'systemid': 30000142, u'name': u'Jita', u'constellationid': 20000020}, u'secChange': False}]

【问题讨论】:

    标签: json list python-2.7 get response


    【解决方案1】:

    您的 JSON 数据是一个包含字典的列表 ([])。要访问列表元素,请使用my_list[index],其中index0 开始。要访问字典元素,请使用my_dict[key],其中key 是您要获取的字典元素的键。

    要访问“to: region: regionid”路径,您需要执行以下操作:

    to_region_id = reply.json()[0]['to']['region']['regionid']
    

    【讨论】:

    • 这给出了代码生成和错误,但通过一些测试我发现你的意思可能是reply.json()[0]['to']['region']['regionid'] 正如我提到的回复是一个响应对象,因此不能接受根据python的指标,我认为因为它给了我以下错误:Traceback (most recent call last): File "C:\Users\Gregoriam\dot\Api.py", line 15, in <module> to_region_id = reply[0]['to']['region']['regionid'] TypeError: 'Response' object does not support indexing
    • 但是如果你使用to_region_id = reply.json()[0]['to']['region']['regionid'] 你会得到想要的结果。长话短说,我理解您的 asnwer 的方式如下:reply.json() 是一个列表,其中包含一个对象,该对象具有称为“字典”的东西(我要在谷歌上搜索),它可能类似于将数据存储在一个不错的统一的方式。附言请编辑您的回答并将回复替换为回复.json(),以便我接受。谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多