我正在使用SQLAlchemy與聲明性基礎和Python 2.6.7插入到SQLite數據庫循環中的數據。Python將循環插入SQLite數據庫中的變量使用SQLAlchemy
作爲簡要背景,我已經實現了一種字典方法來在循環中創建一組變量。我所試圖做的是從一個網站湊了一些數據,並有條數據的1到12之間的下列元素:
overall_star_ratings = doc.findall("//div[@id='maincontent2']/div/table/tr[2]//td/img")
count_stars = len(overall_star_ratings)
在一個空的SQLite數據庫我有變量「t1_star,」 ... 「t12_star」,我想遍歷「overall_star_ratings」中的值列表並將值分配給數據庫變量,這取決於頁面。我正在使用SQLAlchemy,因此(以非常低效的語言),我期望做的是分配值並插入到數據庫中,如下所示(我正在循環代碼中的「行」,例如'row'命令插入值* t1_star *到數據庫中列「t1_star」等):
if count==2:
row.t1_star = overall_star_ratings[1].get('alt')
row.t2_star = overall_star_ratings[2].get('alt')
elif count==1:
row.t1_star = overall_star_ratings[1].get('alt')
這工作,但效率非常低,所以我實現了一個「字典」的方法來創建變量,因爲我在Stack Overflow的一些「變量」問題中見過。所以,這裏是我已經試過:
d = {}
for x in range(1, count_stars+1):
count = x-1
d["t{0}_star".format(x)] = overall_star_ratings[count].get('alt')
這適用於創建「t1_star」,「t2_star」鍵字典以及價值觀的問題是當我嘗試將數據插入。 ,數據庫我曾嘗試加入以下到上面的循環:
key = "t{0}_star".format(x)
value = d["t{0}_star".format(x)]
row.key = value
我也嘗試添加以下上面的循環完成後:
for key, value in d.items():
row.key = value
的問題是,它不是inserti任何東西。看來問題出在row.key部分腳本中,而不是的值,但我不確定。從所有我可以看到,鍵是相同的字符串,因爲我看到當我做到「低效」的方式(即,t1_star等),所以我不知道爲什麼這不起作用。
任何建議將不勝感激!
感謝,
格雷格
這工作就像一個魅力!謝謝! – 2011-12-31 19:17:10