【发布时间】:2013-09-09 19:07:02
【问题描述】:
我正在使用 Python 2.7 从网页中提取信息(使用BeautifulSoup),对该信息进行排序并将其插入到 SQL 表中(使用MySQLdb)。这很简单,我可以从 SO 上的其他地方找到很好的参考。
我的问题是我需要代码来搜索表格,如果信息已经存在,请更新它。但如果信息不存在,则新建一条记录。
例子:
Table
+-----------+----------+--------+
| Name | Phone | Date |
+-----------+----------+--------+
| John | 344-7989 | 9/1 |
+-----------+----------+--------+
| Alexander | 198-3333 | 8/16 |
+-----------+----------+--------+
网络爬虫在网上找到新信息并将其存储到字典列表中:
[
{
"Name" : "Samantha",
"Phone" : "788-3443",
"Date" : "9/5"
}, {
"Name" : "John",
"Phone" : "222-9009",
"Date" : "9/5"
}
]
现在,一条记录 (Samantha) 是全新的,不存在于表中。但是另一条记录(约翰)已经存在,但他的信息是更新的。使用此信息编辑表格并创建的代码是什么:
Final Table
+-----------+----------+--------+
| Name | Phone | Date |
+-----------+----------+--------+
| John | 222-9009 | 9/5 |
+-----------+----------+--------+
| Alexander | 198-3333 | 8/16 |
+-----------+----------+--------+
| Samantha | 788-3443 | 9/5 |
+-----------+----------+--------+
【问题讨论】:
-
你想要什么,MySQL代码还是Python代码?
-
我相信 MySQL 代码。据我了解,您只需将 MySQL 代码放入
(MySQLdb.connect).cursor()。如果有人能给我一个包含 SQL 代码 和 Python 代码的工作示例,那就太好了。 -
但是,你的名单上可以有重复的名字,例如,两个约翰?如果是,您如何识别要更新的寄存器?
-
我认为有人可能会提到这一点,应该在问题中解决它。请记住,这是 sample 数据。在真实数据中,如果两个条目相同,则它们是重复的。没有两个条目应该是相同的。 (当然是在特定列下排序)
标签: python mysql sql python-2.7 mysql-python