从API读取JSon返回值

2024-04-20 04:03:57 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是API的输出,我想读取所有purchaseOrder数据。不确定如何循环这些数据。它的前面还有b'。你知道吗

  b'[
   {"purchaseOrder":
    [
     {
      "id":"d01f0f6d-398f-4220-8a9a-44f47beedf04",
      "installationNumber":null,
      "peerId":"308866ba-90cb-47a7-8c73-589c0f355eb7",
      "validFrom":"2019-06-07T12:51:15.000+0000",
      "validTo":"2019-06-07T13:51:15.000+0000",
      "originalQuantity":5,
      "quantity":5,
      "price":5,
      "periodInitial":"2019-06-07T13:00:00.000+0000",
      "periodFinal":"2019-06-07T14:00:00.000+0000"
     }
   ],
   "salesOrder":null,
   "agreement":null,
   "status":""
  }
]'

我试过loaded_json = json.load(r.content)这样的方法,但没有成功。你知道吗

这是我用来得到答案的代码:

r = requests.post(url=api_endpoint, data=json.dumps(json_post), headers=headers)

Tags: 数据apiidjsonpostnullquantityheaders
2条回答

要获取响应的json,请使用data = response.json()。你知道吗

之后你可以像正常的listsdicts一样一步一步地通过它:

import json
data = r.json()
print(json.dumps(data , indent=2)) # If you want to see the data from the response
for dic in data :
    if 'purchaseOrder' in dic:
        for item in dic['purchaseOrder']:
            # item here is the `dict` for each purchaseOrder (PO).
            print(json.dumps(item, indent=2)) # This will print each item in PO.

谢谢大家的支持。下一个代码适用于我:

    data = r.json()
    print(json.dumps(data, indent=2))
    for dic in data:
        if 'purchaseOrder' in dic:
            for itemdata in dic['purchaseOrder']:
                for key in itemdata:
                    if key == 'id':
                        print("Id:")
                        print(itemdata['id'])
                        print("Price:")
                        print(itemdata['price']) 

相关问题 更多 >