У меня есть базовый c Pandas DataFrame с 3 точками данных (столбцами) на запись. Эти точки данных должны быть отформатированы JSON и отправлены как HTTP-запрос POST с использованием библиотеки запросов, а при запуске кода ему необходимо l oop через каждую запись в DataFrame (10 записей df = 10 запросов POST) . Я могу успешно отправить один запрос, но при использовании l oop ниже появляется сообщение об ошибке: «ValueError: слишком много значений для распаковки (ожидается 2)».
import pandas as pd
import requests
import json
d = {'UID': [1111,2222,3333], 'ID':[29,29,30], 'updatedDate':['2020-04-13','2020-04-13','2020-04-13']}
df = pd.DataFrame(data=d)
for row in df.itertuples(index=False):
payload = f'{{"uniqueIds": ["{row.UID}"], "changes": {{"style": {{"id": {row.ID}}}}}, "updatedDate": "{row.updatedDate}"}}'
requests.post(url,headers=(custom headers),data=payload)
Правильно отформатированный JSON Мне нужно отправить запрос POST, который выглядит следующим образом (f-строка выше форматирует это правильно):
{"uniqueIds": ["1111"], "update": {"style" : {"id": 29}}, "updatedDate": "2020-04-13"}
{"uniqueIds": ["2222"], "update": {"style": {" id ": 29}}," updatedDate ":" 2020-04-13 "}
{" uniqueIds ": [" 3333 "]," update ": {" style ": {" id ": 30}}, "updatedDate": "2020-04-13"}
Если я создам строковую переменную payload = '{"uniqueIds": ["1111"], "update": {"style": {"id": 29}}, "updatedDate": "2020-04-13"}'
и отправлю точно такой же запрос запросов (автономный, за пределами l oop) , запрос выполнен. Включение его в for l oop, как написано выше, вызывает указанную ошибку.
Я искал похожие ошибки, но не смог собрать их вместе. Мой конкретный c вопрос таков: как я могу oop через мой DataFrame отправлять эти запросы в указанном формате JSON? Я открыт для других подходов - мои основные требования c - начать с DataFrame, отправить HTTP POST с специально отформатированным JSON в теле и сделать это столько раз, сколько записей в DataFrame. Извините, но я не могу предоставить полностью воспроизводимый пример (URL / заголовки) из-за защиты конфиденциальности. Я надеюсь, что предоставленной информации достаточно, или что кто-то сталкивался с подобной проблемой в прошлом. Заранее благодарим за любую помощь.