我一直在excel中工作,我正在尝试获取包含键和值的字典。这是我的表:
int1 int2 int3 int4 int5
core_6 2 22 32 core_8 23.34.34.45
72.20.20.20 11 33 core_7 core_work
255.255.255.0 12 12 core_12 44
我试图做为:
{'int1' : 'core_6' '72.20.20.20' ,'255.255.255.0' 'int2': and so on}.
我的代码面临的问题是:
import xlrd
workbook = xlrd.open_workbook('input.xlsx')
workbook = xlrd.open_workbook('input.xlsx', on_demand = True)
worksheet = workbook.sheet_by_name("GlobalInfo")
my_dict = {}
for i in range(2):
row = worksheet.row_values(i)
my_dict[row[1]] = row[1::]
d =dict((k, v) for k,v in my_dict.items() if k is not None and k != '')
for x in d:
print(d[x])
my_di = {k: '' for k in d[x]}
print(my_di) ////take all the int1 as keys
worksheet.cell_value(0, 1)
num_rows = worksheet.nrows - 1
curr_row = 1
kk = []
while curr_row < num_rows:
curr_row += 1
row = worksheet.row(curr_row)
kk.append(row[1].value)
print(kk) ///this will print value of 1st row
但是我无法为我制作的键添加值。
我也无法获取其他行的值。
答案 0 :(得分:0)
Hacker解决方案,分步进行:
1)将Excel文件另存为.csv文件到“ myfile.csv”
2)
import pandas as pd
df = pd.read_csv('myfile.csv')
3)现在可以像处理字典一样处理pandas数据框,例如可以调用
df['int1']
打印关联的列
答案 1 :(得分:0)
尝试使用openpyxl这种方法:
from openpyxl import load_workbook
#load file
wb = load_workbook(filename='input.xlsx', read_only=True)
# select sheet
ws = wb["GlobalInfo"]
data = {}
# build data dict, using column index as dict key saving header title
for idx, header in enumerate(list(ws.rows)[0]):
data[idx] = {"title": header.value, "items": []}
# put each cell value
for row in list(ws.rows)[1:]:
for idx, cell in enumerate(row):
data[idx]["items"].append(cell.value)
# set header titles as dict keys
data = dict([(y["title"], y["items"] ) for x, y in data.items()])