【问题标题】:Create a json file with the following structure from CSV file using python使用 python 从 CSV 文件创建具有以下结构的 json 文件
【发布时间】:2019-08-04 06:03:19
【问题描述】:

您好,我有一个像这样的 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)并且"scalar" and "api" 应该保持不变30 个文件。

现在是第二行,start index and end index 分别为 30 和 60。现在上面的表格应该复制 30 次,"scalar" and "api" 变为对应的第二行。

同样,它必须对所有行进行,对象由(end_index-start_index) 复制,不一定总是 30,"Scalar" and "api" 也会相应地改变。我使用 PYTHON

如果我低估或过分强调任何一点,请在 cmets 中告诉我。

【问题讨论】:

  • 什么阻碍了你?你试过编码吗?如果是的话,你能告诉我们吗
  • 我的想法是将 csv 作为数据帧加载,然后转换为 json。我被困在如何将其复制到(结束-开始)时间

标签: python json converters


【解决方案1】:

试试

导入 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"))

【讨论】:

  • 那么下一行呢?
  • 好吧,把上面的代码看作一个函数,所以你会传递 start = 30, end = 60, scalar = "zone1.pkl", api = "zone2-2",我做了一个编辑对我上面的回答
  • 每个 json 对象都会重复“channel1”!而且我没有得到想要的形式
  • 每个通道 2 之后还有一个大括号 ..即它看起来像 {"channel2" : { } ....}
猜你喜欢
  • 2020-09-24
  • 2021-08-11
  • 2021-12-24
  • 1970-01-01
  • 1970-01-01
  • 2016-07-18
  • 2021-05-16
  • 2019-03-24
  • 1970-01-01
相关资源
最近更新 更多