Flask: python объект для json ошибка запуска при чтении javascript - PullRequest
0 голосов
/ 25 мая 2020

Я пытаюсь передать python словарей и javascript объектов туда и обратно по мере необходимости. Из аналогичных вопросов я понял, что мне нужно это сделать.

Python:

posts = [
{'author':'JL Rowling','title':'Harry Potter'},
{'author':'JRR Tolkien','title':'Lord of the Rings'},
]

Javascript:

var jsonPosts = JSON.parse({{ posts }});
console.log(jsonPosts);

Аналогично, эти тоже не работает:

var jsonPosts = JSON.parse(posts|tojson);
var jsonPosts = {{ posts|tojson }};

Ошибка JS, которую я вызываю: TypeError: Object of type Undefined is not JSON serializable

Я получил этот совет от следующего Q / A:

Python в Javascript JSON объекты (Flask)

Как передать данные из Flask в JavaScript в шаблоне?

Как это исправить?

Изменить: я использовал рекомендацию по ответу и обнаружил следующую ошибку в консоли:

VM129:1 Uncaught SyntaxError: Unexpected token u in JSON at position 0
    at JSON.parse (<anonymous>)
    at about:16

Соответствует

let jsonPosts = JSON.parse();

Кажется, что это не имеет доступа к encoded_posts.

1 Ответ

0 голосов
/ 25 мая 2020

Вам нужно использовать закодированные сообщения:

encoded_posts = json.dumps(posts)

Это даст вам строку, которую ожидает JSON.parse.

var jsonPosts = JSON.parse({{ encoded_posts }});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...