После небольшой очистки кода вам нужно что-то вроде этого:
import dbf
records = ({'a':'19', 'b':'76', 'c':'59', }, )
lstFields = ['a C(50)','b C(50)','c C(50)','d C(50)']
out_dbf_Path= "new.dbf"
db = dbf.Table(out_dbf_Path, lstFields)
db.open(mode=dbf.READ_WRITE)
for dctClmVal in records:
db.append(dctClmVal)
db.close()
и прочитать то, что вы написали:
>>> with db:
... print db[0]
...
0 - a : u'19 '
1 - b : u'76 '
2 - c : u'59 '
3 - d : u' '
Из комментария:
если в моем словаре есть значения в формате списка, соответствующие каждому ключу, Пример:
records = {
'a': ['2','4','6'],
'b': ['3','5','7'],
'c': ['8','9','0'],
}
Как я могу обновить свою базу данных?
Это гораздо лучший способ хранения ваших записей, чем распределение полей отдельных записей по разным спискам. Если один список поврежден, это может повлиять на каждую последующую строку.
Примечание: я удалил () из records
, поскольку они ничего не делали.
#
# combine into individual records
#
real_records = []
for field, values in records.items():
for i, value in enumerate(values):
if len(real_records) == i:
real_records.append({})
real_records[i][field] = value
#
# now add to db
#
for record in real_records:
db.append(record)
Я надеюсь, что помогает с вашим пониманием.