簡體   English   中英

將Python字典轉換為JSON數組

[英]Convert Python dictionary to a JSON array

這是我連接到API的函數:

def order_summary():
    """Get order summary for a specific order"""
    # Oauth2 params
    headerKey = api_login()
    headers = {'Authorization': headerKey}

    # Payload params
    payloadOrderSum = {
        "domainId": 15,
        "domainName": "SGL",
        "orderId": 3018361
    }

    # API response
    orderSumResp = requests.post(url + "order/summary", data=payloadOrderSum, headers=headers)
    print(orderSumResp.content)

該API期望使用一個JSON數組作為有效載荷參數,其本質如下所示:

[
  {
    "domainId": 0,
    "domainName": "string",
    "orderId": 0
  }
]

我在此API上編碼的其他終結點不需要將參數作為數組,因此我可以按原樣使用它們並將它們作為字典發送,並且可以正常工作。

我已經使用JSON庫嘗試了幾件事,但似乎無法正常工作。 我看到JSonEncoder將列表和元組轉換為JSON數組,但我無法弄清楚。

不知道我還能提供什么其他信息,只是問是否有。

謝謝!

payloadOrderSum包裝到一個列表中:

payloadOrderSum = {
    "domainId": 15,
    "domainName": "SGL",
    "orderId": 3018361
}

orderSumResp = requests.post(url + "order/summary", json=[payloadOrderSum], headers=headers)

請注意,我使用json kwarg代替了data (已在2.4.2版中添加 )。

用json.dumps 請求文檔轉儲字典

r = requests.post(url, data=json.dumps(payload))

如果您指定嘗試使用JSON庫,則可能會有所幫助。

但是,如果您還沒有這樣做,可能想嘗試一下:

import json
payloadOrderSum = json.dumps(
    {
    "domainId": 15,
    "domainName": "SGL",
    "orderId": 3018361
    }
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM