[英]Python: how to improve efficency load data from vfp(dbf) to oracle?
[英]Python 2.7- read data from csv and write to Vfp dbf with field names greater than 10 characters long
我正在嘗試從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個字符,因為正如我提到的,我最終將追加到的表已經存在。 任何幫助是極大的贊賞!
我不使用dbfpy,而是查看該語法,看起來您正在創建新的“免費”表。 空閑表的fieldNames的長度限制為10個。
可能您應該在這里查看www.leafe.com和Dabo Framework。 Ed Leafe來自VFP社區,他非常了解VFP數據庫格式。
解決方法是, .dbf
文件中存儲的字段名稱只有10個字符長-碰巧會出現前10個字符(我不確定前10個字符是否必須是唯一的,或者VFP是如何處理的,因此,如果您的字段名稱在前10個字段中都是唯一的,請使用截斷的名稱:
table2=('temptable','zone_num C(2); season_cod C(1)',dbf_type='Vfp')
當前, dbf不支持長字段名。 如果想給我一個帶有長字段名的示例VFP .dbc
,我很樂意添加該支持。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.