2015-11-20 4 views
2

Я пытаюсь загрузить некоторые данные в ML с помощью Python. Это работает нормально, но тип установлен на «T», а не на «J» внутри ML. Я хотел бы решить эту проблему. Настройка заголовка, кажется, просто для показа, так как мне это сделать?Загрузка JSON с использованием Python Запросы неправильного типа

# Sending data 
data = {'meting': '477', 'bericht': '473', 'plant': '01'} 
url = 'http://server:8000/v1/documents?database=thijsPlantjes&extension=json' 
headers = {'Content-Type': 'application/json'} 
r = requests.post(url, json = json.dumps(data), auth=HTTPDigestAuth('plantje', 'password'), headers = headers) 
+2

Весь смысл аргумента ключевого слова 'json' заключается в том, что он выполняет сериализацию JSON для вас, включая настройку заголовка' Content-Type' для 'application/j son'. –

ответ

3

Если вы используете json параметр, requests будет сериализовать для вас, так что вам не нужно json.dumps себя.

И он также установит для вас контент-тип; вы можете сбросить аргумент ключевого слова headers.

r = requests.post(url, json=data, auth=HTTPDigestAuth('plantje', 'password')) 

По requests documentation:

Вместо кодирующий Сыроватских себя, вы также можете передать его непосредственно с помощью параметра json (добавлено в версии 2.4.2), и он будет автоматически кодируется :

+2

Он также устанавливает заголовок 'Content-Type', аргумент' headers' здесь полностью избыточен. –

+0

@MartijnPieters, Спасибо за информацию. Я соответствующим образом обновил ответ. – falsetru

Смежные вопросы