将 dict 导出为 csv 文件时引发 AttributeError
AttributeError raised while exporting dict as csv file
我确定我太盲目了。
在这里的一些帖子的帮助下(感谢所有人)我能够一步一步地走得更远。
我读取了一个 xls 文件,将其移动到一个 dict 中(我需要操作,即稍后删除一些列)并写为 csv。
我的代码:
wb = xlrd.open_workbook(args.inname)
sheet = wb.sheet_by_index(0)
# read header values into the list
keys = [sheet.cell(0, col_index).value for col_index in xrange(sheet.ncols)]
print "keys are", keys
mydict = []
for row_index in xrange(1, sheet.nrows):
d = {keys[col_index]: sheet.cell(row_index, col_index).value
for col_index in xrange(sheet.ncols)}
mydict.append(d)
with open('mycsvfile.csv','wb') as f:
w = csv.writer(f, quoting=csv.QUOTE_ALL)
w.writerow(mydict.keys())
w.writerow(mydict.values())
但这给了我以下错误:
Traceback (most recent call last):
File "xls2csv.py", line 80, in <module>
main()
File "xls2csv.py", line 53, in main
w.writerow(mydict.keys())
AttributeError: 'list' object has no attribute 'keys'
很有趣:"Print "键是",键确实正确地打印了所有键...
mydict 是一个列表:
将行 mydict = []
更改为 mydict = {}
。
然后它崩溃,因为在 dict 结构中不存在 append 方法。要在 dict 中附加值,您可以使用 mydict = {1:2}
或 mydict[1] = 2
。
提高 dict 技能的最佳方法是打开 python 控制台并尝试所有方法。
也可以将列表放入字典值中:
>>> mydict = {}
>>> mydict['namelist'] = [1,2,3]
>>> mydict['namelist'].append(4)
>>> mydict
{'namelist': [1, 2, 3, 4]}
我确定我太盲目了。 在这里的一些帖子的帮助下(感谢所有人)我能够一步一步地走得更远。
我读取了一个 xls 文件,将其移动到一个 dict 中(我需要操作,即稍后删除一些列)并写为 csv。
我的代码:
wb = xlrd.open_workbook(args.inname)
sheet = wb.sheet_by_index(0)
# read header values into the list
keys = [sheet.cell(0, col_index).value for col_index in xrange(sheet.ncols)]
print "keys are", keys
mydict = []
for row_index in xrange(1, sheet.nrows):
d = {keys[col_index]: sheet.cell(row_index, col_index).value
for col_index in xrange(sheet.ncols)}
mydict.append(d)
with open('mycsvfile.csv','wb') as f:
w = csv.writer(f, quoting=csv.QUOTE_ALL)
w.writerow(mydict.keys())
w.writerow(mydict.values())
但这给了我以下错误:
Traceback (most recent call last):
File "xls2csv.py", line 80, in <module>
main()
File "xls2csv.py", line 53, in main
w.writerow(mydict.keys())
AttributeError: 'list' object has no attribute 'keys'
很有趣:"Print "键是",键确实正确地打印了所有键...
mydict 是一个列表:
将行 mydict = []
更改为 mydict = {}
。
然后它崩溃,因为在 dict 结构中不存在 append 方法。要在 dict 中附加值,您可以使用 mydict = {1:2}
或 mydict[1] = 2
。
提高 dict 技能的最佳方法是打开 python 控制台并尝试所有方法。
也可以将列表放入字典值中:
>>> mydict = {}
>>> mydict['namelist'] = [1,2,3]
>>> mydict['namelist'].append(4)
>>> mydict
{'namelist': [1, 2, 3, 4]}