检索 excel 的值作为 python 字典


Sr. No   Name
1         a
2         b
3         c

想象一下这是我的 excel 文件。

要获取标头,请执行以下操作:

dic = pandas.read_excel(excelfile).columns

将 Excel 文件转换为字典:

readers = pandas.read_excel(excelfile).to_dict()

检索值:

for reader in readers:
reader['Name']

因此,如果我检索这样的值,它会显示"列表索引必须是 int,而不是 str"。如何解决此问题。

.to_dict()将创建一个字典,其中键是列的名称,以及包含值的值列表。

事实上,对于给定的数据帧,我们得到:

>>> df.to_dict()
{'Sr. No': {0: 1, 1: 2, 2: 3}, 'Name': {0: 'a', 1: 'b', 2: 'c'}}

您可能希望将其转换为字典列表。对于旧版本的 pandas,您可以通过指定'records'来做到这一点,对于旧版本,这是record

>>> df.to_dict('records')
[{'Sr. No': 1, 'Name': 'a'}, {'Sr. No': 2, 'Name': 'b'}, {'Sr. No': 3, 'Name': 'c'}]
for reader in pandas.read_excel(csvfile).to_dict('records'):
print(reader['Name'])

你可以尝试使用 openpyxl。这在openpyxl中很容易。请参阅以下代码(如果需要,请根据您的 excel 文件更新代码以获取确切的行和列值(:

from openpyxl import load_workbook
wb = load_workbook("Path to excel file")
sheet1 = wb.worksheets[0]
list_dict=[]
dict={}
for row_value in range(1,sheet1.max_row+1):
dict.update({sheet1.cell(row=row_value,column=1).value:sheet1.cell(row=row_value, column=2).value})
list_dict.append(dict)
print(list_dict)

最新更新