[英]Sending a variable as data parameter in requests.post() in Python
我試圖將一個變量傳遞給 requests.post() 中的數據字段,但我繼續收到錯誤消息,
Error Response: {'error': {'message': 'Exception while reading request',
'detail': 'Cannod decode: java.io.StringReader@1659711'}, 'status': 'failure'}
這是我的代碼
#Fill array from CSV
temp=[]
for row in csv.iterrows():
index, data = row
temp.append(data.tolist())
#Create new asset for all assets in CSV
for index, row in enumerate(temp):
make = temp[index][0]
serial = str(temp[index][1])
date = str(temp[index][2])
response = requests.post(url, auth=(user, pwd), headers=headers,
data='{"asset_tag":"test1", "assigned_to":"test2",
"company":"test3", "serial_number":serial}')
我最初嘗試直接從 CSV 使用
str(temp[index][1])
這不起作用,所以我嘗試將str(temp[index][1])
分配給變量serial
然后像這樣傳遞變量,但這也會導致相同的錯誤。
指向正確方向的點會很棒,謝謝!
不是以字符串形式發送請求負載正文,而是以 json 形式傳遞它。 requests.post 接受數據變量中的字符串和 json 變量中的 json。 我在嘗試通過 Python 對 ServiceNow 實例進行第一次 REST 調用時遇到了同樣的問題。 希望這可以幫助。
response = requests.post(url, auth=(user, pwd), headers=headers,
json={"asset_tag":"test1", "assigned_to":"test2",
"company":"test3", "serial_number":serial})
從以下內容中刪除單引號:
data='{"asset_tag":"test1", "assigned_to":"test2",
"company":"test3", "serial_number":serial}'
用
data = {"asset_tag":"test1", "assigned_to":"test2",
"company":"test3", "serial_number":serial}
與其傳遞 data=data,不如將數據作為 dict 並將其作為 json=data 傳遞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.