javascript - 将带有双引号的字符串字段从烧瓶传递到javascript
问题描述
我一直在为这个简单的任务而奋斗:在 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 它:
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
显然,中间的双引号没有处理(转义?)
任何人都可以帮忙吗?
解决方案
你想要一个原始字符串:用'r'作为字符串文字的前缀,并将字符串文字写在单引号中(以避免引入比你需要的更多的反斜杠):
data= {"id": "1", "text": r'RC 5.5\"/140mm'}
由于是原始字符串,python 不会解释反斜杠,它会出现在字符串中,因此会在 render_template 函数中传递。
推荐阅读
- compilation - 使用 ESLint 解析时如何判断注释是描述性注释还是注释掉的代码
- python - 我已经使用 BLE GATT 服务器从树莓派广播传感器值。但我不明白我是如何在本地电脑或笔记本电脑上接收这些数据的?
- java - Java Concurrent-机场模拟
- kotlin - runBlocking 是否应该仅用于测试和主要功能?
- azure - 使用当前管道中运行的先前管道的输出
- azure-data-factory - 在 Blob 文件的标题上添加双引号
- spring - 在 Spring Batch 中找不到 JobParameters
- javascript - 如何在表格中渲染多个Base64图像
- grpc - 将 grpc 升级到使用 TargetFrameworkVersion 4.8 的 v 2.33.1 时出现“Grpc.Core.RpcException”类型的异常
- quarkus - 为什么部署 JAR 打包在生产 Quarkus 应用程序中?