使用python从CSV文件创建具有以下结构的json文件

2024-09-24 02:23:18 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我有一个Csv文件是这样的

start_index end_index         Scalar           API
    0          30            zone0.pkl        zone0-0
    30         60            zone1.pkl        zone1-1
    60         65            zone2.pkl        zone2-2

我必须创建一个json文件,它的格式如下

{
    "channel1": {
        "0": [{
            "scalar": "/zone0.pkl",
            "api": "/model/zone0-0"
        }],
        "1": [{
            "scalar": "/zone0.pkl",
            "api": "/model/zone0-0"
        }]
    },

但是我需要添加一些功能,比如第一行的start_index and end_index是0和30,所以上面的应该复制30次(0的位置从0变为30),对于30个文件"scalar" and "api"应该保持不变

现在是第二行,start index and end index是30和60。现在上面的形式应该复制30次,"scalar" and "api"变成对应的第二行

类似地,它必须对对象由(end_index-start_index)复制的所有行执行此操作,该对象不一定总是30,并且"Scalar" and "api"会相应地更改

如果我对任何一点强调不足或过度,请在评论中告诉我


Tags: and文件csv对象apiindexmodelstart
1条回答
网友
1楼 · 发布于 2024-09-24 02:23:18

试试看

导入json

def create_json(start, end, scalar, api):
    start_idx = start
    end_idx = end
    scalar = scalar
    api = api
    res = dict()
    res["channel1"] = dict()

    for i in range(start_idx, end_idx):
        res["channel1"][i] = {"scalar": scalar, "api": api}

    json_res = json.dumps(res, indent=4)
    return json_res

print(create_json(0, 30, "zone0.pkl", "zone0-0"))
print(create_json(30, 60, "zone1.pkl", "zone1-1"))

相关问题 更多 >