簡體   English   中英

為 Python 請求有效負載重新格式化 JSON 文件(添加 \n,\t)

[英]Reformat JSON file for Python Requests payload (add \n, \t)

我目前正在使用請求庫。 我使用 Postman 創建了一個請求,它可以工作。

url = url

payload = "{\n    \"key\" : {\n\t\t\"inner_key\": [\n    \t\t{\n        \t\t\"inner_key2\": \"inner_value\",\n        \t\t\"inner_key3\": \"inner_value2\"\n    \t\t}\n\t\t],\n}"

headers = {
  'Authorization': 'token',
  'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers,  data = payload)
print(response.text.encode('utf8'))

但是,當我嘗試將 json 傳遞給有效負載時,它不再起作用了。 返回一個空字符串。

jsonfile = {"key" : {
    "inner_key": [
        {
            "inner_key1": "inner_value",
            "inner_key2": "inner_value2"
        }
    ],}}

url = url

payload = jsonfile
headers = {
  'Authorization': 'token',
  'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers,  data = payload)
print(response.text.encode('utf8'))

有沒有辦法重新格式化 jsonfile 以使其包含 \n 和 \t? 我是 json 格式的新手,所以不確定如何了解 go。

您需要將字符串傳遞給只需要最少調整的data參數:

import json
payload = json.dumps(jsonfile) 

json.dumps將讀取您的字典jsonfile並為您提供一個不錯的字符串,該字符串看起來有點像您最初輸入的內容。 事實上你得到

# payload = 
'{"key": {"inner_key": [{"inner_key1": "inner_value", "inner_key2": "inner_value2"}]}}'

暫無
暫無

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

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