Python中JSON解码缺少值
我试图理解如何解码通过REST调用接收到的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"] 输出如下所示:
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
库省去了很多麻烦。非常感谢!我找不到任何关于这种解决这个问题的方法的参考资料。再次感谢!