繁体   English   中英

如何解析直到文本的某一部分并将其余部分转储到 json 文件中

[英]How to parse until a certain part of text and dump the rest into a json file

我将 shell 命令的结果作为字符串。 我想解析字符串,以便将字典对象单独保存在 json 文件中。

s = "output/directory/366d595b-23b2-435d-8dc6-698b3d0844b9/result.csv scores=[{
   "base_score": 0.92,
   "metric": "ACCURACY"
    }]

我尝试了下面的方法来解析“=”,但我不确定它是否可靠。

i = iter(s)
a = '-'.join(itertools.takewhile(lambda x: x != '=', i))

print(a)

with open('data.txt', 'w') as outfile:
    json.dumps(data, outfile)

    json.dumps(a, indent=4)

你可以尝试这样的事情:

import json

s = '''output/directory/366d595b-23b2-435d-8dc6-698b3d0844b9/result.csv scores=[
     {
   "base_score": 0.92,
   "metric": "ACCURACY"
    }]'''

data = json.loads(s.split('=')[1])
print(data)
with open('result.json', 'w') as fp:
    json.dump(data, fp)

这将拆分=上的字符串,然后解析第二个元素。

这可以通过正则表达式来完成。

import json
import re

s = '''output/directory/366d595b-23b2-435d-8dc6-698b3d0844b9/result.csv scores=[ 
     {
   "base_score": 0.92,
   "metric": "ACCURACY"
    }]'''

import json
import re

dict_txt = re.search('\[([^]]+)', s).group(1).strip()
data = json.loads(dict_txt)
print(data)

正则表达式与此处描述的类似。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM