Десериализация полученных POST-запросом json-данных в FastAPI
Я использую FastApi (запуск через uvicorn) для приема простеньких json, но я не знаю как их перегнать в обычный текст, который я хочу загнать в sqlite3 (нужна именно строка со всеми параметрами в ней, а не отдельные столбцы). Базовая модель следующая:
class UserIn(BaseModel):
time: str
login: str
password: str
@app.post("/user/", user=UserIn)
Дальше представлены способы, которыми я пытался пользоваться:
Первый вариант, пришедший мне в голову:
userjson = json.dumps(json.loads(user.time + user.login + user.password))
print(userjson)
File "/usr/local/lib/python3.9/json/decoder.py", line 340, in decode
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 1 column 5 (char 4)
Второй вариант:
print(user.json())
**not valid dict**
Отправляю POST через:
print(requests.post('http://127.0.0.1:8000/user/', json={'time': 'TUE 28 JAN 198', 'login': 'jss', 'password': '12rwrfwa'}))
Ответы (1 шт):
Автор решения: alex
→ Ссылка
Хм.. А попробуй для начала вот так
class UserIn(BaseModel):
time: str
login: str
password: str
userjson = json.dumps(user.dict())
P.S. Напомню, хранить пароли в открытом виде это небезопасно.