【问题标题】:How to access data from a post response in JSON format如何从 JSON 格式的后响应中访问数据
【发布时间】:2019-11-02 10:04:03
【问题描述】:

我正在尝试访问在向 API 发布帖子后返回的字典,但我在使用 JSON 格式化数据时遇到了困难。

它似乎将数据作为字典返回,但我收到错误“列表索引必须是整数或切片,而不是 str”,这让我相信它只是返回一个看起来像字典的列表。我曾尝试使用 json.loads() 并尝试通过列表访问数据,但我似乎无法得到它。我尝试的数据有多个子词典/列表。

resp = post(url = endpoint_url, data = data, headers = headers)
data_for_process = resp.json()
print(data_for_process['pages']['keyValuePairs']['key'])

我希望打印语句返回该特定键的值,但我得到了错误。

非常感谢任何帮助。

【问题讨论】:

  • 您的回复存储在data_for_process,但您正在尝试访问data
  • 这实际上是帖子中的一个错误,我正在调用正确的对象。我在这里复制时更改了一些变量名称
  • 其中一个字段(pages,keyValuePairs,key)是一个列表,因此您需要使用整数。示例(假设 pages 是一个列表)data_for_process['pages'][0]['keyValuePairs']['key']
  • 就是这样,列表和字典的组合。谢谢

标签: python json list post python-requests


【解决方案1】:

可以使用python的json库

import json
import pprint

resp = post(url = endpoint_url, data = data, headers = headers)
resp_json = json.loads(resp.content)
pprint.pprint(resp_json) # to display the dict prettier

【讨论】:

  • 对未来读者的解释表示赞赏。现在您的答案被标记为低质量,我认为这不是您的想法。请更新。
猜你喜欢
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-19
  • 1970-01-01
相关资源
最近更新 更多