【问题标题】:Passing string fields with double quotes from flask to javascript将带有双引号的字符串字段从烧瓶传递到javascript
【发布时间】:2021-05-21 01:18:20
【问题描述】:

我一直在为这个简单的任务而奋斗: 在 python 烧瓶后端,我将此 dict 传递给前端:

data= {"id": "1", "text": "RC 5.5\"/140mm"}
print(data)
print(json.dumps(data))
return render_template("page.html", ..., data=json.dumps(data), ...)

在服务器端,它打印出来:

{'id': '1', 'text': 'RC 5.5"/140mm'}
{"id": "1", "text": "RC 5.5\"/140mm"}

在 javescript 中,我尝试对其进行控制台记录:

console.log(`{{ data| safe }}`);

它在控制台中显示如下:

{"id": 1, "text": "RC 5.5"/140mm"}

我不能 JSON.parse 这个:

JSON.parse(`{{ row_data | safe }}`)

它会抛出一个错误:

Uncaught SyntaxError: Unexpected token / in JSON at position 29

显然,中间的双引号没有处理(转义?)

谁能帮忙解决这个问题。

【问题讨论】:

  • 你试过了吗:data= {"id": "1", "text": 'RC 5.5"/140mm'}
  • @SURYATEJA,是的,我有。打印输出完全一样。 :(
  • 好的,以下有帮助吗? data= {"id": "1", "text": "RC 5.5\"\/140mm"}

标签: javascript python json flask jinja2


【解决方案1】:

你想要一个原始字符串:在字符串文字前加上'r',然后写 单引号中的字符串文字(避免引入更多的反斜杠 你需要):

data= {"id": "1", "text": r'RC 5.5\"/140mm'}

由于是原始字符串,python 不会解释反斜杠,它将是 存在于字符串中,因此它将在 render_template 中传递 功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 2019-04-02
    • 2020-12-21
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    相关资源
    最近更新 更多