我正在尝试编写一个程序,将Excel中的excel文件加载到字典中。我无法找到如何继续。我知道如何将单个值加载到键,但此文件具有分配给每个键的多个值。代码会是什么样的?假设excel文件的A列中的所有内容都是名称,B,C和D列中的所有内容都与A中的每个名称相关。我希望A为键,B,C和D为值。
答案 0 :(得分:0)
我认为以下步骤可以完成这项工作:
对于第1步,可以从xlrd
获得帮助对于第2步,请参考以下代码:
# read excel and get appropriate sheet
rb = xlrd.open_workbook(filename, on_demand=True, formatting_info=True)
my_sheet = rb.sheet_by_name(u'template name')
# get column names in item_list
item_list = my_sheet.row_values(1)
nrows = my_sheet.rows
ncolumns = my_sheet.columns
key_index = item_list.index('A')
value_index = item_list.index('B') # of course 'C' and 'D' if needed
对于step3,可以使用index来获取每一行的值
for row in nrows:
key = my_sheet[row][key_index]
....
如果需要,请参阅my application,它不一样但可能与python excel使用有关,希望对您有所帮助。
答案 1 :(得分:0)
根据您的说明,以下代码可行:
import csv
# Result dictionary
result = {}
# Open the file in Universal mode
with open('Fruit.csv', 'rU') as f:
# Get the CSV reader and skip header
reader = csv.reader(f)
reader.next()
for row in reader:
#First column is the key, the rest is value
result[row[0]] = row[1:]
更新:如果您需要验证运行结果,请将for
块替换为:
for row in reader:
#First column is the key, the rest is value
result[row[0]] = row[1:]
# Print row
print row
# Print result
print row[0], ':', result[row[0]]