簡體   English   中英

Python:Json轉儲轉義引用

[英]Python: Json dumps escape quote

當我傳遞數據時,有一個POST請求可以正常工作,如下所示:

url = 'https://www.nnnow.com/api/product/details'

requests.post(url, data="{\"styleId\":\"BMHSUR2HTS\"}", headers=headers)

但是當我在字典上使用json.dumps()並發送響應時,我沒有得到響應(響應代碼504),使用headers={'Content-Type': 'application/json'} 還試過了Post請求的json參數。

requests.post(url, data=json.dumps({"styleId":"BMHSUR2HTS"}), headers={'content-type': 'application/json'})

現在, json.dumps({"styleId":"BMHSUR2HTS"})"{\\"styleId\\":\\"BMHSUR2HTS\\"}"數據不一樣。

json.dumps({"styleId":"BMHSUR2HTS"}) == "{\\"styleId\\":\\"BMHSUR2HTS\\"}"給出False即使兩者上的打印顯示相似的字符串。

如何從字典{"styleId":"BMHSUR2HTS"}獲得與"{\\"styleId\\":\\"BMHSUR2HTS\\"}"相同的格式?

如果你打印json.dumps({"styleId":"BMHSUR2HTS"}) ,你會發現兩件事:

  1. 你的輸出是一個字符串(只是嘗試type(json.dumps({"styleId":"BMHSUR2HTS"})) );
  2. 如果注意,輸出將在json名稱和值之間添加一個空格: {"styleId": "BMHSURT2HTS"}

不確定您希望如何處理此問題,並且在您的輸入代碼中,但有兩個主要選項可以解決此問題:

  1. 替換json.dumps輸出上的空格: json.dumps({"styleId":"BMHSUR2HTS"}).replace(': ', ':')
  2. 使用eval()將all轉換為json: eval(json.dumps({"styleId":"BMHSUR2HTS"}))eval(YOUR_JSON_STRING)

我希望這可以幫助你。

暫無
暫無

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

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