使用 JavaScript 或 Python 将 .xlsl 转换为 .json

问题描述 投票:0回答:3

我有一个格式为的表格

--------Header--------
Name  Subject  Hours
v1    v2       v3
v4    v5       v6

我希望 json 文件具有以下格式:

{
{
"Name": "v1",
"Subject": "v2",
"Hours": "v3"
},
{
"Name": "v4",
"Subject": "v5",
"Hours": v6
}
}

我尝试使用 pandas,但无法将其转换为我想要的格式。不幸的是,更改 .xlsl 文件的布局是不可能的。我对 Python 和 JavaScript 都持开放态度。

javascript python json
3个回答
0
投票

正如有人在评论中所说,这不是有效的 json。你可以将 json 设置为如下所示:

{ “1”:{ “名称”:“v1”, “主题”:“v2”, “时间”:“v3” }, “2”:{ “名称”:“v4”, “主题”:“v5”, “时间”:“v6” } }

使用:

`

import pandas as pd

data = {
    'Name': ['v1', 'v4'],
    'Subject': ['v2', 'v5'],
    'Hours': ['v3', 'v6']
}

df = pd.DataFrame(data)

json_data = df.to_dict(orient='index')

print(json_data)

`

如果您想要将每行的列表作为 json 那么您可以这样做:

json_data = df.to_json(orient='records')

这会给你一个像这样的json:

[{"姓名":"v1","主题":"v2","时间":"v3"},{"姓名":"v4","主题":"v5","时间":" v6"}]


0
投票

我之前使用 xlsx 包在 NodeJS 中执行此操作。对我来说效果很好。尽管我使用的版本在保存新文件时存在一些格式问题,但如果您所需要做的就是阅读它们,它应该可以解决问题。


0
投票

你不需要熊猫来处理如此琐碎的事情。

假设您的 xlsl 文件只是平面文本(如OP所示)并且您的输出需要是字典列表,那么:

import json

INFILE = "foo.xlsl"
OUTFILE = "foo.json"

with open(INFILE) as indata:
    next(indata) # skip header
    columns = next(indata).split()
    result = [dict(zip(columns, row.split())) for row in indata]
    with open(OUTFILE, "w") as outdata:
        json.dump(result, outdata, indent=2)
© www.soinside.com 2019 - 2024. All rights reserved.