'FieldMissingError' 尝试写入行时
'FieldMissingError' when trying to write row
我一直在我确信它存在的字段 ('severa_id') 上收到 FieldMissingError。我检查了 ver_33.py,这表明如果该字段不在 self._meta.fields.
中,则会触发异常
table._meta.fields 显示该字段:
print(table._meta.fields)
>>>
['proj_code', 'severa_id', 'rec_id', 'ext_key']
>>>
这是我正在尝试的代码:
table = dbf.Table(path_to_dbf)
table.open()
for row in dbf.Process(table):
for project in projects:
if str(row.proj_code)[0:4] == project["ProjectNumber"]:
row.write_record(severa_id=project["GUID"])
我也试过这些设置字段的方法:
row.severa_id = project["ProjectNumber"]
#row.write()
row.write_record()
最后,我还尝试设置每个其他字段(使用随机字符串),这会导致相同的错误。
编辑:我正在使用 dbf 模块 (https://pypi.python.org/pypi/dbf/0.96.005)
编辑:原始回溯:
Traceback (most recent call last):
File "<string>", line 420, in run_nodebug
File "C:\Users\Alexander\Documents\update_projecten\update_dbf.py", line 58, in <module>
row.write()
File "C:\Users\Alexander\Envs\vfp\lib\site-packages\dbf\ver_33.py", line 2451, in __getattr__
raise FieldMissingError(name)
dbf.ver_33.FieldMissingError: 'write: no such field in table'
编辑:有效脚本的最终版本。注意不要使用 Process 并在 dbf.write 中指示要写入的行和字段。
table = dbf.Table(path_to_dbf)
table.open()
for row in table:
for project in projects:
if str(row.proj_code)[0:4] == project["ProjectNumber"]:
dbf.write(row, severa_id=project["GUID"])
write_record
不再作为行方法存在,因此您看到的错误可能表明 write_record
不是字段。
相反,尝试:
dbf.write(severa_id=project['GUID'])
我一直在我确信它存在的字段 ('severa_id') 上收到 FieldMissingError。我检查了 ver_33.py,这表明如果该字段不在 self._meta.fields.
中,则会触发异常table._meta.fields 显示该字段:
print(table._meta.fields)
>>>
['proj_code', 'severa_id', 'rec_id', 'ext_key']
>>>
这是我正在尝试的代码:
table = dbf.Table(path_to_dbf)
table.open()
for row in dbf.Process(table):
for project in projects:
if str(row.proj_code)[0:4] == project["ProjectNumber"]:
row.write_record(severa_id=project["GUID"])
我也试过这些设置字段的方法:
row.severa_id = project["ProjectNumber"]
#row.write()
row.write_record()
最后,我还尝试设置每个其他字段(使用随机字符串),这会导致相同的错误。
编辑:我正在使用 dbf 模块 (https://pypi.python.org/pypi/dbf/0.96.005)
编辑:原始回溯:
Traceback (most recent call last):
File "<string>", line 420, in run_nodebug
File "C:\Users\Alexander\Documents\update_projecten\update_dbf.py", line 58, in <module>
row.write()
File "C:\Users\Alexander\Envs\vfp\lib\site-packages\dbf\ver_33.py", line 2451, in __getattr__
raise FieldMissingError(name)
dbf.ver_33.FieldMissingError: 'write: no such field in table'
编辑:有效脚本的最终版本。注意不要使用 Process 并在 dbf.write 中指示要写入的行和字段。
table = dbf.Table(path_to_dbf)
table.open()
for row in table:
for project in projects:
if str(row.proj_code)[0:4] == project["ProjectNumber"]:
dbf.write(row, severa_id=project["GUID"])
write_record
不再作为行方法存在,因此您看到的错误可能表明 write_record
不是字段。
相反,尝试:
dbf.write(severa_id=project['GUID'])