【问题标题】:Parse JSON within Python在 Python 中解析 JSON
【发布时间】:2018-01-27 06:36:16
【问题描述】:

我只是想问我可以做些什么来解决我遇到的这个问题。

基本上我正在为阿迪达斯的运动鞋制作库存检查器,我知道获取库存的端点,但返回给我的 JSON 数据在可读的同时包含我需要的内容,还包含一堆其他信息,这些信息对于什么来说是不必要的我正在努力做。

到端点的链接示例:

http://production.store.adidasgroup.demandware.net/s/adidas-GB/dw/shop/v16_9/products/(BZ0221)?client_id=c1f3632f-6d3a-43f4-9987-9de920731dcb&expand=availability,variations,prices

这是一个包含鞋子库存、价格和可用性的 JSON 链接。但是,如果您尝试打开它,您会看到它响应了一堆无用的信息,例如鞋子的描述和我不需要的价格。

我用来尝试处理我尝试提出的请求的 github 存储库是:

https://github.com/yzyio/adidas-stock-checker/blob/master/assets/index.js

我可以得到它来给我 JSON 响应我只是想剥离我不需要的东西并保留我确实需要的东西,我发现这非常困难,尤其是在 python 中。

非常感谢!

【问题讨论】:

标签: python json python-3.x python-requests


【解决方案1】:

既然您已经说过您可以从服务器获得 JSON 响应,那么您首先需要做的就是告诉 python 将其加载为 JSON。

import json
data = json.loads(response_from_server)

完成此操作后,您现在可以访问 JSON 对象中的值,就像通过 Python dict 访问它们一样。

data["artist"]["id"]

【讨论】:

  • 嗨,我尝试使用对象“名称”和“变体”作为测试,但我最终得到了这个TypeError: the JSON object must be str, bytes or bytearray, not 'Response'
  • 这意味着 response_from_server 不是字符串,请尝试评估这是什么类型的对象....如果它是响应对象,则可能需要说 data = json.loads(response_from_server.text)
  • 查看这个问题了解更多信息。 stackoverflow.com/questions/42976090/…
  • 最好使用.content.text会尝试解码响应。或者更好地使用返回 json 对象的.json()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-03
  • 1970-01-01
  • 1970-01-01
  • 2016-09-10
  • 2021-12-28
  • 2013-08-11
相关资源
最近更新 更多