0

Je suis en train de passer une variable dans le champ de données dans requests.post() et je continue à obtenir l'erreur,Envoi d'une variable en tant que paramètre de données dans requests.post() en Python

Error Response: {'error': {'message': 'Exception while reading request', 
'detail': 'Cannod decode: [email protected]'}, 'status': 'failure'} 

Voici mon code

#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}') 

Je l'origine essayé l'alimentation directement à partir du CSV à l'aide

str(temp[index][1]) 

Cela ne fonctionne pas, alors j'ai essayé assi gning str(temp[index][1]) à la variable serial puis en passant la variable comme cela mais cela entraîne également la même erreur.

Un point dans la bonne direction serait génial, merci!

Répondre

0

Retirez les guillemets simples parmi les options suivantes:

data = '{ "asset_tag": "test1", "assigned_to": "test2", "société": "test3", "numéro_de_série": série } »

Utilisez

data = { "asset_tag": "test1", "assigned_to": "test2", "société": "test3", "numéro_de_série": série}

1

lieu d'envoyer le corps de la charge utile de la requête dans une chaîne, passez-la sous la forme json. requests.post accepte la chaîne dans la variable de données et json dans la variable json. J'ai rencontré le même problème en essayant de faire mon premier appel REST à l'instance de ServiceNow via Python. J'espère que cela t'aides.

response = requests.post(url, auth=(user, pwd), headers=headers, 
    json={"asset_tag":"test1", "assigned_to":"test2", 
    "company":"test3", "serial_number":serial})