簡體   English   中英

Python 2.7-從csv讀取數據並寫入Vfp dbf,其字段名稱長度超過10個字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM