所以我的目标是将 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() 而不是替换,因为它可以更容易地添加新字符以在路上逃脱。
您提供的代码试图将 JSON 字符串插入 MySQL 查询字符串,但在 JSON 字符串中转义引号存在问题。
json_str = json.dumps(data_dict)
escaped_json_str = json_str.replace("'", r"\'")