在我的下面的代码中,我试图将附加到值的每个开始和结束,以便我可以在运行我的python脚本后直接执行SQL插入操作。
以下是代码
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。希望我清楚自己想要什么。
答案 0 :(得分:2)
问题在于:
(a['href'] if a + '1' else '`NULL`')
a
是Tag
类的实例,1
是一个字符串。
我想你只需要if a
支票:
(a['href'] if a else '`NULL`')
而且,仅供参考,请更好地使用string formatting或format,而不是使用+
手动连接字符串。
而且,使用参数化的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)
答案 1 :(得分:1)
转过来:
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+""
进入这个:
# create your format string
keys = 'date', 'url', 'rooms', # etc...
fmt_s = ', '.join('{{{key}}}'.format(key=key) for key in keys)
# yields: '{date}, {url}, ...'
# build up the necessary values
params = {'date': today}
params['url'] = a['href'] if a else '`NULL`'
params['rooms'] = a.string if a else 'NULL, NULL'
# etc...
# first format fills in the values from the dict
# second format adds the parens
print("({0})".format(fmt_s.format(**params)))
你可以完成剩下的工作了吗?
使用参数化SQL比使用手动构建字符串更好。