gpt4 book ai didi

Python OpenERP 7 坏魔数(Magic Number)

转载 作者:太空宇宙 更新时间:2023-11-03 18:52:11 25 4
gpt4 key购买 nike

我一直在产品表上测试 OpenERP 导入。我有超过 25k 个产品要导入,而 OpenERP 导入真的非常慢...所以,我遇到了一个直接导入 PostgresQL 的脚本。我尝试了一下,但收到了“错误的魔数(Magic Number)”错误。我看了这个视频: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]”行上收到语法错误......怎么了?

最佳答案

bad magic number 错误根本不是 OpenERP 特有的,它与 Python 内部相关。

正如您可能在其他问题中读到的那样,这通常是使用由不同版本的 Python 生成的 Python .pyc 文件的症状。您是否已确保删除您可以在 Python 脚本旁边找到的所有 *.pyc*.pyo 文件,如所解释的,例如in this other question ?如果您最初尝试使用 Python 3 运行脚本(由于语法错误而失败),则需要先删除这些工件,然后才能使用 Python 2 运行它们。

至于当您尝试使用 Python 3 运行脚本时出现的语法错误,这是因为您的脚本使用了 Python 2 语法。在 Python 3 中,print 不再是关键字,它是您需要像普通函数一样调用的内置函数:

print(row[1])

您可以从 this guide 开始如果你想将代码转换为 Python 3,但如果你不熟悉编码、字节串与 unicode 字符串等 Python 概念,那么这并不是一件小事,特别是当涉及文件读取操作时,就像这里一样。在您的脚本中,您通常需要更正 print 调用并将 open 更改为此形式(如 the documentation 中所示):

reader = csv.reader(open('products_import.csv', 'r', newline=''))

关于Python OpenERP 7 坏魔数(Magic Number),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18091264/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com