[новичок вопрос]
Я пытаюсь создать новую запись в моей базе Airtable с помощью python 3. Команды curl в документации выглядят следующим образом:
$ curl -v -XPOST https://api.airtable.com/v0/restoftheurl \
-H "Authorization: Bearer My_API_Key" \
-H "Content-type: application/json" \
-d '{
"fields": {
"Item": "Headphone",
"Quantity": "1",
"Customer_ID": [
"My_API_Key"
]
}
}'
Код python, который я пытался использовать, это:
import requests
API_URL = "https://api.airtable.com/v0/restoftheurl"
data = {"Authorization": "Bearer My_API_Key","Content-type":
"application/json","fields": {"Item": "randomitem","Quantity":
"5","Customer_ID": ["randomrecord"]}}
r = requests.post(API_URL, data)
print(r.json())
Где ответ - ошибка:
{'error': {'type': 'AUTHENTICATION_REQUIRED', 'message': 'Authentication required'}}
Как я должен правильно аутентифицировать это, или я?
Вы должны отличить тело (данные) от заголовков. Использование json
named argument автоматически устанавливает тип содержимого в application/json
:
import requests
API_URL = "https://api.airtable.com/v0/restoftheurl"
headers = {
"Authorization": "Bearer My_API_Key"
}
data = {
"fields": {
"Item": "randomitem",
"Quantity": "5",
"Customer_ID": ["randomrecord"]
}
}
r = requests.post(API_URL, headers=headers, json=data)
print(r.json())