使用换行符flask / jinja2渲染json数据

时间:2018-05-21 17:05:30

标签: json flask jinja2

我想要烧瓶使用包含换行符的json渲染模板。但是,JSON.parse()会引发错误。我想找到处理这类信息的最佳方法。

迷你样品申请:

from flask import Flask, render_template_string
import json

app = Flask(__name__)

@app.route('/')
def index():
    example = {'blabla': 'what\'s up\n\nnot much'}
    return render_template_string('''<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>title</title>
</head>
<body>
<script>
JSON.parse('{{ some_json_data | tojson }}')
</script>
</body>
</html>
''', some_json_data=example)

到目前为止我尝试过的组合:

example = {'blabla': 'oh no\n\n'}
JSON.parse('{{ some_json_data | tojson }}')
SyntaxError: JSON.parse: bad control character in string literal at line 1 column 22 of the JSON data

example = {'blabla': 'oh no\n\n'}
JSON.parse('{{ some_json_data | tojson(indent=4) }}')
SyntaxError: '' string literal contains an unescaped line break


example = json.dumps({'blabla': 'what\'s up\n\nnot much'})
JSON.parse('{{ some_json_data }}')
SyntaxError: JSON.parse: expected property name or '}' at line 1 column 2 of the JSON data

example = json.dumps({'blabla': 'what\'s up\n\nnot much'})
JSON.parse('{{ some_json_data | safe }}')
SyntaxError: missing ) after argument list

1 个答案:

答案 0 :(得分:0)

在写这个问题时,我尝试了更多的组合,找到了一个有效的方法。

example = json.dumps({'blabla': 'what\'s up\n\nnot much'})
JSON.parse({{ some_json_data | tojson }})