在python中将文本文件的内容转换为json

2024-06-28 19:35:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的新手我需要你的帮助/建议,我正在尝试使用python将文本文件的内容转换为json

文件名为json_内容.txt. 下面是文本文件的内容

hostname : WGNAIOP
fsystem : /dev/sdb
actual_size : 2.5T
used_disk : 609G
avail_disk : 1.7T
percentage : 26%
mount_disk : /data

hostname : WNQAIOP
fsystem : /dev/sdb
actual_size : 2.5T
used_disk : 526G
avail_disk : 1.8T
percentage : 23%
mount_disk : /data

我尝试了多种方法,但我无法得到json格式的结果。 请帮助我知道如何将上述文本数据转换为json

提前感谢!!!在


Tags: devjson内容datasizehostnameuseddisk
3条回答
json_data = {}
with open("json_content.txt","r") as fp:
    for line in fp.readlines():
        if line != "\n":
            split_data = line.split(':',)
            print(split_data)
            json_data[split_data[0]] = split_data[1].split('\n')[0]

print(json_data)

输出:

^{pr2}$

这是另一个类似的答案。在

import re
import json

tfile='/home/json_content.txt' 
input = None
with open(tfile) as infile:
    input = infile.readline()

# remove leading and trailing double quotes if needed
# input = input.strip('"')
pattern = re.compile("\S* : \S*")
match = pattern.findall(input)

data = {}
for kvp in match:
    values = kvp.split(' : ')
    data[values[0]] = values[1]

data_json = json.dumps(data)
print(data_json)

除非键或值中有空格,否则可以使用此正则表达式将内容转换为听写格式:

line = 'hostname : WGNAIOP fsystem : /dev/sdb actual_size : 2.5T used_disk : 609G avail_disk : 1.7T'
d_items = re.findall(r"(\S+\s:\s\S+)", line)

d = dict()
for d_item in d_items:
    k, v = d_item.split(" : ")
    d[k] = v

对于代码片段提供的行:

^{pr2}$

相关问题 更多 >