Python 2.7-从csv读取数据并写入Vfp dbf,字段名称长度超过10个字符

时间:2015-10-22 12:24:08

标签: python csv visual-foxpro dbf

我试图从csv中读取数据行,并将它们作为记录附加到现有的Visual FoxPro dbf中。现有的Visual FoxPro dbf有许多长度超过10个字符的字段,但这在使用模块dbf或dbfpy时会导致错误。

以下是表结构简化版的示例:

import dbf
table=dbf.from_csv('seasdate.csv',field_names="zone_num   season_code",dbf_type='Vfp')
#table to write to
table2=('temptable','zone_num C(2); season_code C(1)',dbf_type='Vfp')
for datum in table:
    table2.append(datum)

返回:' dbf.ver_2.FieldSpecError:最大字段名称长度为10.' season_code'是11个字符。'

我知道在Vfp表中可能有一个大于10个字符长的字段名称,因为正如我所提到的,我最终将附加的表已经存在。任何帮助是极大的赞赏!

2 个答案:

答案 0 :(得分:1)

我没有使用dbfpy但是看一下这种语法,看起来你正在创建新的" free"表。免费桌子' fieldNames的长度限制为10。

你可能应该在那里查看www.leafe.com和Dabo Framework。 Ed Leafe来自VFP社区,他非常了解VFP数据库格式。

答案 1 :(得分:0)

作为解决方法,存储在.dbf文件中的字段名称只有10个字符 - 前10个字符,因为它发生(我不确定前10个字符是否必须唯一,或者VFP如何处理它。)因此,如果您的字段名称在前10个中都是唯一的,那么只需使用截断的名称:

table2=('temptable','zone_num C(2); season_cod C(1)',dbf_type='Vfp')

目前dbf不支持长字段名称。如果你想给我一个带有长字段名称的样本VFP .dbc,我很乐意考虑添加这些支持。