如何grep列并将其添加到字典键中作为值

时间:2018-09-12 11:34:05

标签: python python-3.x python-2.7

我一直在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

但是我无法为我制作的键添加值。

我也无法获取其他行的值。

2 个答案:

答案 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()])