转义字符串字典值中的引号和双引号

问题描述 投票:0回答:1

所以我的目标是将 json 字符串插入到 Mysql 查询字符串中问题来自 '" 在将值格式化为查询时。

我最初有一个字典,为了从 mysql 中读取它应该将引号转义为 \'

[{'id': 'null', 'name': "Sensi D'acqua"}]

为此,我尝试使用映射和翻译函数转义键“名称”的值:

mapping = {
    r"'": r"\'",
    r'"': r'\"'
}

dict['name'].translate(str.maketrans(mapping))

这导致字典转义反斜杠也添加了第二个 \ 扰乱了查询。:

[{'id': 'null', 'name': "Sensi D\\'acqua"}]

然后我必须将字典转换为字符串(或者不是吗?)并将其插入到查询中。

列的数据类型是 JSON,因为我从数据库中收到的值已经解析为字典,而不是将其保存为文本和 json。每次都加载它。

string = [{'id': 'null', 'name': "Sen'si D'acqua"}]

注意:我尝试使用 .translate() 而不是替换,因为它可以更容易地添加新字符以在路上逃脱。

python escaping mysql-python
1个回答
-1
投票

您提供的代码试图将 JSON 字符串插入 MySQL 查询字符串,但在 JSON 字符串中转义引号存在问题。

    json_str = json.dumps(data_dict)
escaped_json_str = json_str.replace("'", r"\'")
© www.soinside.com 2019 - 2024. All rights reserved.