繁体   English   中英

使用Python 2.7更新SQL表吗?

[英]Updating a SQL table with Python 2.7?

我正在使用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  |
+-----------+----------+--------+

此链接中 ,对类似问题有很好的答案。

使其适应您的上下文,这可能是示例代码:

CREATE TABLE Users (`name` varchar(35) unique, `phone` varchar(10), `date` date);

还有一个关于python代码的想法(使用MySQLdb):

...
cursor = connection.cursor()
cursor.execute("""
    INSERT INTO Users (name, phone, date)
    VALUES (%s,%s,%s)
    ON DUPLICATE KEY UPDATE phone = %s, date=%s;
    """,(name,phone,date,phone,date))
cursor.close()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM