Пустое числовое значение в dbf, созданное dbfpy

У меня есть файл .dbf с числовым столбцом. Я хочу, чтобы ячейки в числовом столбце были пустыми. Я пробую этот код:

db = dbf.Dbf("temp.dbf", new=True)
db.addField(('ACCT_ID', 'C',10),
("NUMROW","N",9),

for acct_id  in data:
     rec = db.newRecord()
     rec["ACCT_ID"] = a[nse]["ACCT_ID"]
     rec.store()
db.close()

Но затем я читаю данные из файла, у меня есть 0 в NUMROW. Также я пытаюсь изменить dbfpy на dbf, но у меня тот же результат. Может кто-нибудь помочь мне? можно ли создать пустую ячейку в числовом столбце?


person Yan Anisimov    schedule 18.06.2014    source источник


Ответы (1)


Похоже, вам нужно поле, способное удерживать Null. Чтобы сделать это с помощью dbf, вам нужно будет создать таблицу с типом, который поддерживает пустые поля, например как ФоксПро:

# not tested
db = dbf.Table('temp', 'acct_id C(10) null; numrow N(9,0', dbf_type='vfp')
db.open()
for acct_id in data:
    db.append(dict(acct_id=acct_id, numrow=None))
db.close()

Теперь, когда вы вернетесь и прочитаете поле, вы должны получить значение для acct_id и None для numrow.

person Ethan Furman    schedule 18.06.2014