在Python中将excel文件加载到字典中

时间:2014-05-13 04:46:20

标签: python excel file dictionary

我正在尝试编写一个程序,将Excel中的excel文件加载到字典中。我无法找到如何继续。我知道如何将单个值加载到键,但此文件具有分配给每个键的多个值。代码会是什么样的?假设excel文件的A列中的所有内容都是名称,B,C和D列中的所有内容都与A中的每个名称相关。我希望A为键,B,C和D为值。

2 个答案:

答案 0 :(得分:0)

我认为以下步骤可以完成这项工作:

  1. 打开MS excel。
  2. 读取excel文件中的列名,因为您可能会读取该列中的数据,我想您真正需要的是该列的索引。
  3. 将第一列中的值(我认为它应该是'A')视为键,将其他列视为值(顺便说一下,'A'不需要是第一列,因为您可以在Excel行中搜索)。
  4. 对于第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]]