Python Flask / JSON: строковые индексы должны быть целыми числами - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь написать веб-сервер с Flask и, например, имею следующую функцию для сообщения:

@app.route('/v1/tasks', methods=['POST'])
def post():
    data=request.get_json()
    title=data["title"]
    tasks.append(json.dumps({"id": len(tasks), "title": title, "is_completed": "false"}))
    index=len(tasks)-1
    return json.dumps({"id":index}), 200

title = data ["title"] выдает следующую ошибку:

TypeError: string indices must be integers

Формат ввода для POST должен быть:

{title: "Test Task 2"}

Я запутался, потому что видел другую функцию post, где доступ к содержимому JSON работал так:

@app.route('/post', methods=['POST'])
def post():
    data=request.get_json()
    dictionary[data["key"]]=data["value"]
    data["message"]="success"
    return json.dumps(data)

Что мне нужно изменить, чтобы я мог получить доступ к заголовку из ввода JSON?

Спасибо за помощь!

1 Ответ

1 голос
/ 26 февраля 2020

В этом нет ничего плохого. Убедитесь, что вы используете правильный тип мультимедиа MIME для публикации JSON, то есть application / json. Протестируйте ваш Flask сервер с этим кодом и посмотрите, работает ли он правильно.

import requests

response = requests.post('http://localhost:5000/v1/tasks', json={'title': "Test Task 2"})
print(response.status_code)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...