Python中JSON解码缺少值

Python中JSON解码缺少值,python,json,list,decode,Python,Json,List,Decode,我试图理解如何解码通过REST调用接收到的JSON日志,这让我发疯了 这是我的代码: r = requests.get(url, auth=(a, b)) parsed = json.loads(r.content) for request in parsed['logs']: for z in request["request"]["input"]: print(z) 如果我执行: print request["request"]["input"] 输出如下所示:

我试图理解如何解码通过REST调用接收到的JSON日志,这让我发疯了

这是我的代码:

r = requests.get(url, auth=(a, b))
parsed = json.loads(r.content)
for request in parsed['logs']:
    for z in request["request"]["input"]:
        print(z)
如果我执行:

print request["request"]["input"]
输出如下所示:

{text:sample string}
{text:fake string}
..
而如果我执行上面的代码,我在屏幕上看到的唯一东西就是“文本”

我真的很想知道我做错了什么,因为我浪费了最后一个小时去尝试我能在网上找到的所有解决方案

我正在Ubuntu 17.10上使用Python 2.7

提前感谢各位抽出时间

试试这个:

r = requests.get(url, auth=(a, b))
parsed = json.loads(r.content)
for request in parsed['logs']:
  for key, val in request["request"]["input"].iteritems():
    print(key, val)
试试这个:

r = requests.get(url, auth=(a, b))
parsed = json.loads(r.content)
for request in parsed['logs']:
  for key, val in request["request"]["input"].iteritems():
    print(key, val)

您正在打印每个字典的
,而不是实际值,因此只打印
文本
,因为这是
键的名称
请求[“请求”][“输入”]
是一个字典,所以您基本上是在迭代和打印它的键(碰巧是
文本
)。如果您将
print(z)
替换为
print(request[“request”][“input”][z])
您将打印它的值。您打印的是每个字典的
,而不是实际值,因此
文本
仅打印,因为这是
键的名称
是一个字典,因此您基本上是在迭代和打印它的键(恰好是
文本
)。如果您将
print(z)
替换为
print(request[“request”][“input”][z])
您将打印它的值。您也可以使用
r.json()
。导入
json
库省去了很多麻烦。非常感谢!我找不到任何关于这种解决这个问题的方法的参考资料。再次感谢!您也可以在使用时使用
r.json()
。导入
json
库省去了很多麻烦。非常感谢!我找不到任何关于这种解决这个问题的方法的参考资料。再次感谢!