<p>你真的有23个独立的变量吗?最好把所有的东西都放在一本字典里,这样就更清楚了,什么是属于一起的,而且你不必数那么多。错误是,execute需要一个列表作为最后一个参数,<code>link_result</code>可能是一个包含多个字符的字符串,例如包含多个元素的列表:</p>
<pre><code>result = {
"Sale_Rent": Sale_Rent_result,
"Type": Type_result,
"Area": area_result,
"Nearby": nearby_result,
"Title": title_result,
"Price": price_result,
"PricePerSqrFt": Pricepersq_result,
"Bedroom": bedroom_result,
"Agency_Fee": agencyfee_result,
"Bathroom": bathroom_result,
"Size": size_result,
"ZonedFor": Zoned_for_result,
"Freehold": Freehold_result,
"Prop_ref": propertyref_result,
"Furnished_status": furnished_result,
"Rent_payment": rent_is_paid_result,
"Building_info": building_result,
"Amenities": Amenities_result,
"Trade_name": tradename_result,
"Licence": licencenum_result,
"RERA_ID": reraid_result,
"Phone_info": phone_result,
"Short_link": link_result,
}
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,(result["Short_link"],))
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 ({fields}) VALUES ({values})"""
query = query.format(fields=','.join(result), values=','.join(['%s']*len(result)))
cursor.execute(query, result.values())
db.commit()
cursor.close()
db.close()
</code></pre>
<p>如果您尝试插入具有相同链接的另一行,而不是手动检查约束,则最好使列<code>Short_link</code>唯一并捕获错误:</p>
^{pr2}$