После сериализации в json ваш набор данных представляет собой простой текст. Чтобы добавить оттуда больше параметров, ваши единственные опции включают вашу полезную нагрузку вместе с метаданными в отправка параметров , что приводит к кодировке URL-адреса json. Или вставьте свою полезную нагрузку в json post верхнего уровня , таким образом дважды кодируя в json.
Вы получили бы ясность и, возможно, производительность, если бы вместо этого оставили задание кодирования json на requests
. Таким образом, вы можете добавлять данные и при этом кодировать / декодировать только один раз.
Пример
dataset = dataset.to_dict(orient='list')
post_data = {'dataset ID': "makis", 'date start': "1", 'date end': "2", 'payload': dataset}
url = "http://localhost:8081/upload_dataset"
r = requests.post(url, json=post_data)
Сторона сервера:
@app.route("/upload_dataset", methods=['POST'])
def upload_dataset():
post_data = request.get_json()
## Use of meta data keys e.g. post_data['date start']
dataset = pd.from_dict(post_data['payload'], orient='columns')