我一直在測試產品表上的OpenERP導入。我有25k +的產品需要導入,OpenERP導入非常慢,所以我碰到了一個直接導入PostgresQL的腳本。我試過了,我得到了一個「不好的幻數」錯誤。我看了這個視頻:http://www.firstclasscomputerconsulting.com/OpenERP/OpenERP70Videos/tabid/145/articleType/ArticleView/articleId/3/Import-data-into-OpenERP-7-using-direct-PostGRES-method.aspx,它使用了相同的腳本,我正在做同樣的事情。Python OpenERP 7壞的幻數
我的導入文件看起來是這樣的:
Rabbit Patch 6x10 Chart/Black,0.01,0.01
DAZL-HARES EAR DK DUN PER LB,0.01,0.01
SQUIRREL DUBBING MED H.E./LB!,0.01,0.01
我創建兩個PY文件,並使用宙斯的Windows .csv格式。
我在這個網站上看到了這個錯誤的其他線程,但我沒有看到任何與OpenERP一起引用這個問題的引用。
這裏的腳本:
import csv
import psycopg2
conn_string = "dbname='OpenERP' user='openpg' password='openpgpwd'"
conn = psycopg2.connect(conn_string)
cursor = conn.cursor()
reader = csv.reader(open('products_import.csv','rb'))
for row in reader:
print row[1]
statement = "INSERT INTO product_template (name,standard_price,list_price,mes_type,uom_id,uom_po_id," \
"type,procure_method,cost_method,categ_id,supply_method,sale_ok) VALUES ('" + row[1] + "'," \
+ str(row[2]) + "," + str(row[2]) + ",'fixed',1,1,'product','make_to_stock','standard',1,'buy',True) RETURNING id"
cursor.execute(statement)
conn.commit()
templateid = cursor.fetchone()[0]
statement = "INSERT INTO product_product (product_tmpl_id,default_code,active,valuation) VALUES \
(" + str(templateid) + ",'" + row[0] + "',True,'manual_periodic')"
cursor.execute(statement)
conn.commit()
有什麼建議?
我將py文件和csv複製到我的Python33目錄中,並從那裏嘗試,現在我在「print row [1]」行中得到語法錯誤...是否?
好,版型的差異是顯而易見的,我只是沒想到這件事 - OpenERP運行2.6.或2.7,這就是我應該嘗試的 - 這是一個漫長的一週:)我要在完全不同的機器上嘗試它,但沒有安裝任何其他Python版本並查看會發生什麼。我會發布結果。謝謝你的幫助! – JimB
更新:我用一個乾淨安裝的openerp在另一臺機器上運行腳本。我拿出插入語句,然後讓腳本打印出csv行。它第一次運行良好,沒有不好的幻數錯誤或語法錯誤,看着它在幾秒鐘內滾動通過12k +行......第二次,我跑了它,它只是用編輯器打開腳本......怎麼了接着就,隨即?開始討厭python ... – JimB