【发布时间】: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