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

amrnrhlw  于 2023-03-21  发布在  Python
关注(0)|答案(1)|浏览(190)

因此,我的目标是将一个json字符串插入到Mysql查询字符串中,问题来自于将值格式化到查询中时的“和“。
我原来有一个字典,为了从mysql中读取,应该将引号转义为' [{'id': 'null', 'name': "Sensi D'acqua"}]
为此,我尝试使用Map和translate函数转义键“name”的值:

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

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

这会导致字典也转义反斜杠,并添加第二个\,这会使查询变得混乱。
[{'id': 'null', 'name': "Sensi D\\'acqua"}]
然后,我必须将dict转换为字符串(或者我不这样做?)并将其插入查询。
列的数据类型是JSON,因为我从数据库中接收的值已经被解析为dict,而不是将其保存为text和json。
注意:我尝试使用.translate()而不是replace,因为这样可以更容易地添加新的字符以避免以后的问题。

omqzjyyz

omqzjyyz1#

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

json_str = json.dumps(data_dict)
escaped_json_str = json_str.replace("'", r"\'")

相关问题