Lea un archivo CSV y realice una solicitud HTTP POST desde cada línea con Python.
Tengo un archivo CSV que quiero leer línea por línea y emparejar el encabezado con el valor para hacer una petición HTTP POST a un servidor web. Aquí tienes un ejemplo de un archivo CSV:
"Nombre del artículo","SO","Número de serie","Etiqueta de activo","Fabricante","Nombre del modelo","Número de modelo","Categoría","IP","Estado"
"MIORDENADOR","Microsoft Windows 10 Pro","ALGO","ALGO","Dell","Latitude","5420","Escritorio","0.0.0.0","Listo"
Aquí está mi código en Python:
import requests
import csv
import time
import pandas as pd
url = "https://develop.snipeitapp.com/api/v1/hardware"
headers= {
"Accept": "application/json",
"Content-Type": "application/json"
}
df = pd.read_csv('IMPORT.csv')
for idx, data in df.iterrows():
payload = {
"status_id": data['Estado'],
"model_id": data['Número de modelo'],
"name": data['Nombre del artículo'],
"model_name": data['Nombre del modelo'],
"serial": data['Número de serie'],
"os": data['SO'],
"manufacturer": data['Fabricante'],
"ip": data['IP'],
"Category": data['Categoría']
}
response = requests.request("POST", url, json=payload, headers=headers)
Pero quiero hacer una petición POST para cada línea en un archivo CSV con los valores que coincidan con el encabezado por campo de carga, si eso tiene sentido.
ACTUALIZACIÓN
He actualizado mi código en esta publicación y ahora obtengo este error:
TypeError: Object of type set is not JSON serializable
¡Gracias de antemano!
Un saludo, Max
davy.ai
Para solucionar el error
TypeError: El objeto de tipo set no se puede serializar a JSON
, necesitas cambiar las comas en el diccionario de carga útil por dos puntos.Aquí tienes el código actualizado:
¡Espero que esto sea de ayuda! Hazme saber si tienes alguna pregunta adicional.