如何将多个文本文件转换为多个 json 文件

How to Convert Multiple Text Files Into Multiple json Files

我有多个文本文件需要转换为 json 文件。对于每个文本文件,我想要一个单独的 json 文件。

文本文件内容

File-1.txt

['education~25,850,103,23', 'experience~28,94,107,27', 'skills~29,904,59,27']

File-2.txt

['introduction~211,143,87,13', 'education~169,302,131,17', 'skills~322,421,84,15', 'experience~325,142,112,14', 'reference~320,699,68,14']

等等...

预期输出是一个 json 文件,其中包含:

这是我用这段代码尝试的,我能够将数据写入 txt--

with open(PATH_TO_RESULTS + '/' + os.path.join(os.path.basename(os.path.dirname(image_path)))  + '.txt', 'w') as f:
        image_name = os.path.splitext(os.path.basename(image_path))[0]
#        f.write((image_path + '|'))
        req_fields = []
        for key, value in field_item.items():
            #print("=====================")
            # print(key)
            # print((scores[0, index]))
            # print(value)
            # print("==================")
            merge = str(key.decode('utf-8')) + '~' + str(value)
            req_fields.append(merge)
        f.write(str(req_fields))
        print("#######################Required Fields###########################",req_fields)

还有一件事,json 文件名也应该与 txt 文件名相同。

我认为这就是您所需要的。或者至少如此接近。 你可以改进和适应它(最佳命名)

import glob, os
import json

os.chdir(".")

def read_file(file):
    with open(file, 'r') as file:
        return file.read()


def write_json(file, data):
    with open(file, 'w') as fout:
        json.dump(data, fout, indent=4)

for file in glob.glob("*.txt"):
    content = read_file(file)

    to_parse_in_rows = content.replace('[', '').replace(']', '').split(', ')

    rows = []

    for part in to_parse_in_rows:
        field12, field3, field4, field5 =  part.replace("'", '').split(',')

        field1, field2 = field12.split('~')

        row = {
            'class': field1,
            'field2': int(field2),
            'field3': int(field3),
            'field4': int(field4),
            'field5': int(field5)
        }

        rows.append(row)

    write_json(file.replace('.txt', '.json'), rows)