如何从Excel工作表创建嵌套词典并将它们合并在一起



提前感谢您的帮助。 我是蟒蛇的新手。我有以下Excel工作表:

sheet 1                        sheet 2
A    B    C   D  E             A   B
1    a    27  BG 10            1   url_1
2    b    10  UK 20            1   url_2
3    c    15  US 30            2   url_3
4   url_4

我想以这种格式创建一个 json 数据:

{"A": 1,"B":"a","C": "27","D":"BG", "E":"10","webs": [{ "web" :"url_1" , "web" : "url_2" }]},
{"A": 2,"B": "b","C": "10","D":"UK","E":"20", "webs": [{"web" :"url_3'}]},
{"A: 3, "B": "c", "C": "15","D":"US", "E":"30", "webs: [{  "web : "url_4" }]}

我在使用以下代码将第二张纸分组到第一张纸时遇到问题:

for row in range(1, sheet_1.nrows):
row_values = sheet_1.row_values(row)
b = {}
a= row_values[0]
b['A'] = row_values[0]
b['B'] = row_values[1]
b['C'] = row_values[2]
b['D'] =  row_values[3]
b['E'] =  row_values[4]
for rows in range(1, sheet_2.nrows):
row = sheet_2.row_values(rows)
if row_values[0] == row[0]:
b['webs'] = [{'web':row[1]}]
print(b)

产生以下输出

{'A': 1.0, 'B': 'a', 'C': 27.0, 'D': 'BG', 'E': 10.0, 'webs': [{'web': 'url_2'}]}
{'A': 2.0, 'B': 'b', 'C': 10.0, 'D': 'UK', 'E': 20.0, 'webs': [{'web': 'url_3'}]}
{'A': 3.0, 'B': 'c', 'C': 15.0, 'D': 'US', 'E': 30.0, 'webs': [{'web': 'url_4'}]}

任何帮助将不胜感激。

最好

b['webs']变量不断更新值,而不是将其存储在列表中,最后存储第二个工作表的最后一行匹配行的值。

for row in range(1, sheet_1.nrows):
row_values = sheet_1.row_values(row)
b = {}
b['A'] = row_values[0]
b['B'] = row_values[1]
b['C'] = row_values[2]
b['D'] =  row_values[3]
b['E'] =  row_values[4]
temp = [] #Initialize empty list
for rows in range(1, sheet_2.nrows):
row = sheet_2.row_values(rows)
if row_values[0] == row[0]:
temp.append({'web':row[1]}) #append the item to the list
b['webs'] = temp
print(b)

这现在应该有效。但是,如果您想使用 Python 处理 excel 数据,请考虑探索 Python 的 Numpy 库。

最新更新