TypeError:不支持+:“Tag”和“str”的操作数类型

2024-06-28 16:31:10 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的代码中,我尝试将附加到值的每个开头和结尾,以便在运行python脚本后直接执行sqlinsert操作。在

以下是代码

print today,","+ (a['href'] if a else '`NULL`')+",", (a.string if a else 'NULL, NULL')+ "," +",".join(re.findall("'([a-zA-Z0-9,\s]*)'", (a['onclick'] if a else 'NULL, NULL, NULL, NULL, NULL, NULL')))+","+ ", ".join([project] + area),","+pdates+""

这是我的全部code

我得到的是output。我很清楚我想要什么。在


Tags: 代码re脚本todaystringif结尾null
2条回答

转这个:

print today,","+ (a['href'] if a else '`NULL`')+",", (a.string if a else 'NULL, NULL')+ "," +",".join(re.findall("'([a-zA-Z0-9,\s]*)'", (a['onclick'] if a else 'NULL, NULL, NULL, NULL, NULL, NULL')))+","+ ", ".join([project] + area),","+pdates+""

在这方面:

^{pr2}$

你能把剩下的做完吗?在

使用参数化SQL仍然比手动构建字符串要好。在

问题在于:

(a['href'] if a + '1' else '`NULL`') 

aTag类的实例,1是字符串。在

我想你只需要做个if a检查:

^{pr2}$

而且,仅供参考,最好使用string formattingformat,而不是使用+手动连接字符串。在

而且,最好使用参数化的sql语句(请参见sqlite3 docs):

query = """
INSERT INTO
    `property`
    (`date`,`Url`,`Rooms`,`place`,`PId`,`Phonenumber1`,`Phonenumber2`,`Phonenumber3`,`Typeofperson`,` Nameofperson`,`typeofproperty`,`Sq.Ft`,`PerSq.Ft`,`AdDate`,`AdYear`)
VALUES
    (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
"""

# define your field values as a list
values = [today, a['href'] if a else 'NULL', ... ]

# execute
cursor.execute(query, values)

相关问题 更多 >