Python数据库--SQL语句的语法问题(即对于字符串的特殊处
理)
有时候⽤变量存字符串输⼊数据库,会出现语法错误。
注意:Python的字符串换⾏时,末尾加反斜杠 \ 以⽰连接,若有原始字符转义 r ,则每⾏都有。(别问,问就是PyCharm告诉我的Σ( ° △ °|||)︴)
检查就可以发现是那个字段的字符串⾥有单引号或者双引号,这时候就要利⽤字符串的引号套⽤。
⼀般爬取的字符串⾥只会有单引号,于是,把SQL语句改成下⾯这样,把整个句⼦的引号换成单引号,于是%s的引号就可以使⽤双引号,于是替换进去的变量中的单引号也会被识别。
sql_insert = 'insert into linkedin_blog(uname,comments,operate,update_time,insert_time) ' \
update是什么
'values ("%s","%s","%s","%s","%s")' \
% (uname, strcmts, operate, update_time, insert_time)
但是有时候字符串或者爬取的数据中会有反斜杠,众所周知反斜杠可是转义字符,这个东西突然出现可
就坏事了,于是我们可以在字符串前加上⼩写字母 r,忽略字符串中的转义序列 ,使字符串成为“原始字符串” ,“原始字符串”将按分配给该字符串的⽅式打印,也就是你写的什么就是什么。
sql_insert = r'insert into linkedin_blog(uname,comments,operate,update_time,insert_time) ' \
r'values ("%s","%s","%s","%s","%s")' \
% (uname, strcmts, operate, update_time, insert_time)
还有⼀种情况,就是如果出现了双引号,那么可以把它换成单引号或者中⽂单双引号或者直接去掉,使⽤字符串的replace⽅法即可。cmts.eplace('"', ''))

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。