【问题标题】:How do you parse this JSON in Python?你如何在 Python 中解析这个 JSON?
【发布时间】:2016-12-07 05:59:20
【问题描述】:

JSON 下面

{"result":[
    {
        "spawn_point_id":"89",
        "encounter_id":"1421",
        "expiration_timestamp_ms":"1470105387836",
        "latitude":38.22,
        "longitude": -91.27
    },
    {
        "distance_in_meters":10,
        "encounter_id":"9677"
    },
    {
        "distance_in_meters":10,
        "encounter_id":"1421"
    },
    {
        "spawn_point_id":"11",
        "encounter_id":"2142",
        "expiration_timestamp_ms":"1470105387444",
        "latitude":38.00,
        "longitude": -91.00
    }
]}

我希望输出看起来像

spawn 89 at lat 38.22 long -91.27
spawn 11 at lat 38.00 long -91.00

我使用了json.loads,它实际上让 json 看起来很时髦。

代码如下:

c = json.loads(r.content)
for d in c['result']:
    if d['latitude'] is not None:
        print(str(d['latitude']))

似乎有点工作,但随后出现错误

Traceback (most recent call last):
File "fast0.py", line 11, in <module>
if d['latitude'] is not None:
KeyError: 'latitude'

【问题讨论】:

  • python中有一个json模块。它将加载一个dict 类型的对象,就像Java 中的HashMap。阅读文档应该会让你走得很远。
  • 时髦我的意思是它在所有键和值的前缀中添加了一个 u'
  • 试试d.get('latitude') 而不是d['latitude']
  • 请不要在您的问题中编辑解决方案。相反,将其作为单独的答案发布在下面。请看stackoverflow.com/help/self-answer

标签: python json


【解决方案1】:

您正在寻找一个不存在的密钥。试试:

c = json.loads(r.content)
for d in c['result']:
    if 'latitude' in d:
        print(str(d['latitude']))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-21
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 2021-01-28
    • 2013-04-29
    • 2017-06-07
    • 2014-04-16
    相关资源
    最近更新 更多