我有一个带有嵌套标题的 Excel 文件:
阅读标题内容后,结果为:
header = [
['Order', 'Translation', '', '', '', '', 'Status', ''],
['', 'Not available', 'Language', '', '', '', 'Packed', 'Delivered'],
['', '', 'English', '', 'FR', 'ES', '', ''],
['', '', 'US', 'UK', '', '', '', '']
]
现在我想获得这样的东西:
output = [
'Order',
'Translation.Not Available',
'Translation.Language.English.US',
'Translation.Language.English.UK',
'Translation.Language.FR',
'Translation.Language.ES',
'Status.Packed',
'Status.Delivered'
]
知道如何实现这个输出吗?也可以是JSON格式。谢谢!
{
"Order": "",
"Translation": {
"Not Available": "",
"Language": {
"English": {
"US": "",
"UK": ""
},
"FR": "",
"ES": ""
}
},
"Status": {
"Packed": "",
"Delivered" : ""
}
}
此时只能得到以下内容:
output = [
'Order',
'Translation.Not available',
'Translation.Language.English.US',
'Translation.Language.English.UK',
'FR',
'ES',
'Status.Packed',
'Status.Delivered'
]
仍然无法获得“FR”和“ES”的正确路径。也许有人会发现代码逻辑的问题:
def flat_headers(header):
flat_headers_list = ["" for _ in range(len(header[0]))]
for i, row in enumerate(header):
for j, col in enumerate(row):
if not col:
if i < len(header) - 1 and header[i + 1][j]:
if not flat_headers_list[j]:
if j > 0 and flat_headers_list[j - 1]:
flat_headers_list[j] = flat_headers_list[j - 1]
else:
flat_headers_list[j] = header[i + 1][j]
else:
if flat_headers_list[j]:
flat_headers_list[j] += "." + col
else:
flat_headers_list[j] = col
return flat_headers_list