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

#python #dbf

#python #dbf

Вопрос:

У меня есть файл .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, но у меня тот же результат. Кто-нибудь может мне помочь? возможно ли создать пустую ячейку в числовом столбце?

Ответ №1:

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

 # 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 .