製品テーブルで OpenERP インポートをテストしています。インポートする製品が 25,000 個以上ありますが、OpenERP のインポートは非常に遅いため、PostgresQL に直接インポートするスクリプトを見つけました。試してみましたが、「不正なマジック ナンバー」というエラーが表示されます。このビデオを見ました: http://www.firstclasscomputerconsulting.com/OpenERP/OpenERP70Videos/tabid/145/articleType/ArticleView/articleId/3/Import-data-into-OpenERP-7-using-direct-PostGRES-method.aspx これは同じスクリプトを使用しており、まったく同じことをしています。
私のインポートファイルは次のようになります。
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
Windows用のZeusを使用して、pyファイルと.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]」行で構文エラーが発生しました... wth?