python - 如何在 Python 中迭代二维数组
问题描述
我正在发出获取数据的请求。请求和响应如下。我正在尝试迭代结果并做两件事:
遍历未定义数量的页面(每页最多 100 个结果,因此我需要对我的响应进行分页以获得所有结果)。
打印/返回 CombinedPaymentStatus = PAID 的订单列表。
我确定我的请求尚未完成,但我被困在这一点上。我最近收到了这个错误:
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 129 (char 128)
.
我认为使用该变量paymentStatus
会有所帮助,索引[1]
是静态的,因此不会遍历数组中的每个项目。
要求:
import requests
import json
import config
url = 'https://inventory.dearsystems.com/ExternalApi/v2/saleList?Page=25&Limit=100&CreatedSince=2021-05-01'
payload = {}
headers = {
"Content-Type": "application/json",
"api-auth-accountid": config.liveAccountid,
"api-auth-applicationkey": config.liveApplicationKey
}
response = requests.request("GET", url, headers=headers, data=payload)
paymentStatus = response.json()["SaleList"][1]["CombinedPaymentStatus"]
total = response.json()["Total"]
page = response.json()["Page"]
for paymentStatus in response:
json.loads(paymentStatus)
print(paymentStatus)
回复:
{
"Total": 6471,
"Page": 1,
"SaleList": [
{
"SaleID": "6222cb47-0e1e-450d-af6d-0cefcee9eef7",
"OrderNumber": "SO-00092",
"Status": "ORDERED",
"OrderDate": "2017-09-29T00:00:00Z",
"InvoiceDate": null,
"Customer": "Rock Star Transport",
"CustomerID": "74de0528-fae7-4233-9222-e92110d57f5a",
"InvoiceNumber": null,
"CustomerReference": "",
"InvoiceAmount": 0,
"PaidAmount": 0,
"InvoiceDueDate": null,
"ShipBy": null,
"BaseCurrency": "RUB",
"CustomerCurrency": "RUB",
"CreditNoteNumber": null,
"Updated": "2017-09-29T03:03:13.913Z",
"QuoteStatus": "AUTHORISED",
"OrderStatus": "AUTHORISED",
"CombinedPickingStatus": "PICKED",
"CombinedPaymentStatus": "PAID",
"CombinedTrackingNumbers": "",
"CombinedPackingStatus": "PACKED",
"CombinedShippingStatus": "SHIPPING",
"CombinedInvoiceStatus": "INVOICED",
"CreditNoteStatus": "NOT AVAILABLE",
"FulFilmentStatus": "NOT FULFILLED",
"Type": "Advanced Sale",
"SourceChannel": "Amazon_US",
"ExternalID": null,
"OrderLocationID": "8b5d4343-c007-43d7-8e8f-6fa6c0d29f22"
},
{
"SaleID": "a6558396-8893-479b-bca9-f89ea3e54633",
"OrderNumber": "SO-00091",
"Status": "BACKORDERED",
"OrderDate": "2017-09-28T00:00:00Z",
"InvoiceDate": "2017-09-28T00:00:00Z",
"Customer": "Rock Star Transport",
"CustomerID": "9a4513e9-a7a4-4ee5-b240-84cfd8944cde",
"InvoiceNumber": "INV-06073",
"CustomerReference": "19614",
"InvoiceAmount": 0,
"PaidAmount": 0,
"InvoiceDueDate": "2017-10-02T00:00:00Z",
"ShipBy": "2017-09-29T00:00:00Z",
"BaseCurrency": "RUB",
"CustomerCurrency": "AUD",
"CreditNoteNumber": null,
"Updated": "2017-09-29T03:00:48.043Z",
"QuoteStatus": "NOT AVAILABLE",
"OrderStatus": "AUTHORISED",
"CombinedPickingStatus": "NOT PICKED",
"CombinedPaymentStatus": "UNPAID",
"CombinedTrackingNumbers": "",
"CombinedPackingStatus": "NOT PACKED",
"CombinedShippingStatus": "NOT SHIPPED",
"CombinedInvoiceStatus": "NOT INVOICED",
"CreditNoteStatus": "NOT AVAILABLE",
"FulFilmentStatus": "NOT FULFILLED",
"Type": "Simple Sale",
"SourceChannel": null,
"ExternalID": null,
"OrderLocationID": "8b5d4343-c007-43d7-8e8f-6fa6c0d29f22"
}
]
}
解决方案
推荐阅读
- eclipse - 如何在 macOS Big Sur 上的 Eclipse 12s IDE(科学)中构建 fortran 代码
- vue.js - 通过提供使用异步数据
- python - 用带有python列表的for语句替换while循环
- php - 有 json_encode 但有线路返回
- json - 如何以这种格式将数据从 json 文件导入 PostgreSQL?
- python - 将音频文件分成几部分,但我需要在语音识别中使用这些文件
- c# - 如何返回分割某个字符串的分隔符?(C#)
- c# - 如何从前端向 asp:ListItem 添加标题?
- python - 有没有办法在纸浆中检索下一个最佳最佳解决方案?
- pytorch - 如何在没有直接引用其类定义且没有莳萝的情况下使用 torch.load/save 腌制自定义对象?