Python發post請求時,body參數是鍵值對,但是值是一串json的處理方式


在處理一個商品加購的post的請求時,遇到一個奇怪的body,鍵值對參數的值是一串json,如下:

goods={"quick":0,"spec":[],"goods_id":329,"number":1,"parent":0}

當時第一反應是寫成

data={'goods':{"quick":0,"spec":[],"goods_id":329,"number":1,"parent":0}},pycharm就直接報錯了

然后第二種想法就是賦值

r={"quick":0,"spec":[],"goods_id":329,"number":1,"parent":0}

data={'goods':r}

能運行,但是響應結果報錯,並不是成功加入購物車的結果;

最后,嘗試json.dumps成功

cart1 = {"quick": 1, "spec": [], "goods_id": 329, "number": 1, "parent": 0}
cart2 = json.dumps(cart1)

cart = {'goods': cart2}

cartadd = test.post('https://www.go-easy.com.cn/flow.php?step=add_to_cart', data=cart)
print(cartadd.text)

得到想要的結果,我是Python+requests框架的初學者,不太明白為什么要這么做,想了一下應該是:

該鍵值對的值是json,必須為json結構的,直接在Python中編輯出這段json,默認為Python數據結構,要使用json.dumps將其轉換為json數據結構,這樣該post請求中的body參數才不會出錯


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM