我有一个pythonwebscraping代码,如果不在数据库中插入任何结果,它运行得非常好。i、 当我注释掉这部分代码时
“” 连接到数据库并将数据放入 “”
db= MySQLdb.connect("localhost","XXX","XXX","hmm_Raw_Data")
cursor=db.cursor()
#checking phase to stop scrapping
sql = """SELECT Short_link FROM RentalWanted WHERE Short_link=%s"""
rows = cursor.execute(sql,(link_result))
if rows>=1:
duplicate_count+=1
print duplicate_count
# if duplicate_count>=15:
# print "The program has started getting duplicates now- The program is terminating"
# sys.exit()
else:
query="""INSERT INTO RentalWanted
(Sale_Rent,
Type,
Area,
Nearby,
Title,
Price,
PricePerSqrFt,
Bedroom,
Agency_Fee,
Bathroom,
Size,
ZonedFor,
Freehold,
Prop_ref,
Furnished_status,
Rent_payment,
Building_info,
Amenities,
Trade_name,
Licence,
RERA_ID,
Phone_info,
Short_link)
values(
%s,
%s,
%s,
%s,
%s,
%s,
%s,
%s,
%s,
%s,
%s,
%s,
%s,
%s,
%s,
%s,
%s,
%s,
%s,
%s,
%s,
%s,
%s)"""
cursor.execute(query,(
Sale_Rent_result,
Type_result,
area_result,
nearby_result,
title_result,
price_result,
Pricepersq_result,
bedroom_result,
agencyfee_result,
bathroom_result,
size_result,
Zoned_for_result,
Freehold_result,
propertyref_result,
furnished_result,
rent_is_paid_result,
building_result,
Amenities_result,
tradename_result,
licencenum_result,
reraid_result,
phone_result,
link_result))
db.commit()
cursor.close()
db.close()
当我把上面的代码放进去时,我得到的错误是:
^{pr2}$我想我的问题出了问题。在
谁能帮我弄清楚哪部分需要修理吗。我花了好几个小时,但不知道我错在哪里
谢谢
显然,MySQL python版本1.2.5中存在向后兼容性问题,当您调用execute时,它需要一个元组而不是一个字符串。在
试试这个:
你真的有23个独立的变量吗?最好把所有的东西都放在一本字典里,这样就更清楚了,什么是属于一起的,而且你不必数那么多。错误是,execute需要一个列表作为最后一个参数,
link_result
可能是一个包含多个字符的字符串,例如包含多个元素的列表:如果您尝试插入具有相同链接的另一行,而不是手动检查约束,则最好使列
^{pr2}$Short_link
唯一并捕获错误:相关问题 更多 >
编程相关推荐