我正在从 API 中提取数据并将其插入 MySQL 表中。我发现有些行的列带有单引号(')值,并且给Mysql的插入代码带来了问题。我想用转义值 (\') 替换它们,但由于某种原因我的替换代码不起作用
import requests
import math
import pymysql
import string
from datetime import date, timedelta
#replace invalid characters with scapes values
print (type(calls[b][17]))
print (type(calls[b][18]))
print (calls[b][17])
print (calls[b][18])
if calls[b][17] is not None:
calls[b][17] = calls[b][17].replace("'","\'")
if calls[b][18] is not None:
calls[b][18] = calls[b][18].replace("'","\'")
print (calls[b][17])
print (calls[b][18])
结果是
class types
原始值
“塞西尔·丹尼尔·阿普里尼”<+33179976110>
塞西尔
丹尼尔·阿普里尼
塞西尔·丹尼尔·阿普里尼
替换值
“塞西尔·丹尼尔·阿普里尼”<+33179976110>
塞西尔
丹尼尔·阿普里尼
塞西尔·丹尼尔·阿普里尼
最终声明
插入thinky_phone_data values('e912be49-bfd3-4454-8679-c53503Eecfd2','+33179976110','+331707099949' :27:33.0','2016-01-19 09:31:19.0','234','226','已回答','0','0','"Cecile Denier d'Apriny"<+33179976110 >','3 Mundi','3 Mundi','team3','cdenier@3mundi.com','Cecile','Denier d'Aprigny','Cecile Denier d'Aprigny','巴黎办事处','无','无','无','无','无','无','无','无')
我希望我的替换值是
“塞西尔·丹尼尔·阿普里尼”<+33179976110>
塞西尔
丹尼尔·阿普里尼
塞西尔·丹尼尔·阿普里尼
最佳答案
看来我只需要解释一下这个问题就可以理清思路。只需添加所有正确的转义值
解决办法是
if calls[b][11] is not None:
calls[b][11] = calls[b][11].replace('\'','\\\'')
关于python - 替换字符串的一部分 ' for\' 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37183356/