gpt4 book ai didi

python - 解析 .dms 文件中存在的深度嵌套的 JSON 数据

转载 作者:太空宇宙 更新时间:2023-11-03 20:46:01 25 4
gpt4 key购买 nike

我正在尝试解析保存为 .dms 文件的深层嵌套 json 数据。我将该文件的一些交易保存为 .json 文件。当我尝试 json.load() 函数读取 .json 文件时。我收到的错误为

JSONDecodeError: Extra data: line 2 column 1 (char 4392)

在文本编辑器中打开 .dms 文件,我从中复制了 3 个交易并将其另存为 .json 文件。文件中的交易不以逗号分隔。它由新行分隔。当我使用其中的 1 个事务作为 .json 文件并使用 json.load() 函数时,它成功读取。但是当我尝试使用 3 个事务的 json 文件时,它显示错误。

import json
d = json.load(open('t3.json')) or

with open('t3.json') as f:
data = json.load(f)

print(data)

示例交易是:

{  
"header":{
"msgType":"SOURCE_EVENT",

},
"content":{
"txntype":"ums",
"ISSUE":{
"REQUEST":{
"messageTime":"2019-06-06 21:54:11.492",
"Code":"655400",

},
"RESPONSE":{
"Time":"2019-06-06 21:54:11.579",

}
},
"DATA":{
"UserId":"021",

},
{header:{.....}}}


{header:{......}}}

这就是来自 API 的 json 数据的样子。我以可读的方式写了它。但它都是连续写入的,每当标题开始时,它就会从新行开始。 .dms 文件有 3500 个事务。两笔交易甚至没有用逗号分隔。它由新线分隔。但在交易中,值中存在额外的空格。例如; "company": "目标芯片 123 CA"

我需要的输出:我需要通过从每个事务的数据中提取键 messageType、messageTime、userid 的值来制作 csv。

请帮助清除错误,并建议如何从每笔交易的这些交易中提取我需要的数据,并将其放入 .csv 文件中,以便我进行进一步的分析和机器学习建模。

最佳答案

如果每个对象都包含在一行中,则一次读取一行并单独解码每一行:

with open(fileName, 'r') as file_to_read:
for line in filetoread:
json_line = json.loads(line)

如果对象分布在多行上,那么理想情况下尝试修复数据源,否则使用我的库 jsonfinderHere是一个可能有帮助的示例答案。

关于python - 解析 .dms 文件中存在的深度嵌套的 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56605099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com