【问题标题】:How to convert key value text to json arrya format python如何将键值文本转换为json数组格式python
【发布时间】:2023-02-03 13:56:22
【问题描述】:

我有一个用例,我们有像键值格式这样的文本文件。 该文件不是任何固定格式,而是像 key value 一样创建的。

我们需要从该文件创建 JSON。

我能够创建 JSON,但是当文本格式具有类似结构的数组时,它只创建键值 json 而不是数组 json 结构。

这是我的输入。

[DOCUMENT]
Headline=This is Headline
MainLanguage=EN
DocType.MxpCode=1000
Subject[0].MxpCode=BUSNES
Subject[1].MxpCode=CONS
Subject[2].MxpCode=ECOF
Author[0].MxpCode=6VL6
Industry[0].CtbCode=53
Industry[1].CtbCode=5340
Industry[2].CtbCode=534030
Industry[3].CtbCode=53403050
Symbol[0].Name=EXPE.OQ
Symbol[1].Name=ABNB.OQ
WorldReg[0].CtbCode=G4
Country[0].CtbCode=G26
Country[1].CtbCode=G2V
[ENDOFFILE]

退出创建 json 的代码如下

with open("file1.csv") as f:
    lines = f.readlines()
data = {}
for line in lines:
    parts = line.split('=')
    if len(parts) == 2:
        data[parts[0].strip()] = parts[1].strip()
print(json.dumps(data, indent='  '))

当前输出如下

{
  "Headline": "This is Headline",
  "MainLanguage": "EN",
  "DocType.MxpCode": "1000",
  "Subject[0].MxpCode": "BUSNES",
  "Subject[1].MxpCode": "CONS",
  "Subject[2].MxpCode": "ECOF",
  "Author[0].MxpCode": "6VL6",
  "Industry[0].CtbCode": "53",
  "Industry[1].CtbCode": "5340",
  "Industry[2].CtbCode": "534030",
  "Industry[3].CtbCode": "53403050",
  "Symbol[0].Name": "EXPE.OQ",
  "Symbol[1].Name": "ABNB.OQ",
  "WorldReg[0].CtbCode": "G4",
  "Country[0].CtbCode": "G26",
  "Country[1].CtbCode": "G2V"
}

预期出来的是像下面这样的东西

对于 Subject 键,对其他人也同样明智

{
  "subject": [
    {
      "mxcode": 123
    },
    {
      "mxcode": 123
    },
    {
      "mxcode": 123
    }
  ]
}

同样明智的行业和符号和国家。

所以我们的想法是,当我们在文本文件中有位置时,它应该被视为 json 输出中的数组。

【问题讨论】:

    标签: json python-3.x


    【解决方案1】:

    嵌套时再使用一个循环。从主题开始的地方使用 for 循环。那样试试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      • 2017-02-24
      相关资源
      最近更新 更多