---
title: "python中使用数据库时的特殊字符问题"
url: "https://lerry.me/post/2012/09/python-sql"
date: 2012-09-07T04:04:00.000Z
updated: 2026-08-22T18:15:20.007Z
tags:
  - "Python"
  - "database"
language: zh-CN
---

# python中使用数据库时的特殊字符问题

这两天在弄个小程序，需要用数据库，程序没什么，都是轻车熟路，可是处理数据库时遇到了问题，要插入的数据有几百万行，数据一多，情况也就复杂了，有些数据里面包含有 ' , " , ! 等特殊字符，导致insert select时出错。
刚开始遇到单引号出错，我就把sql语句里面换成双引号，后来遇到双引号我就没辙了，经过反复的测试，发现python的sql api已经能很好的解决这种问题了，关键代码如下：

```python
v = v.decode('utf-8', 'ignore')
c.execute("SELECT id FROM passwd WHERE value = ?", [v])

p = p.decode('utf-8', 'ignore')
c.execute("INSERT INTO passwd(value) VALUES(?)", [p])
```
