gpt4 book ai didi

python - 如何使用一些规则将一些纯文本输出转换为 JSON?

转载 作者:行者123 更新时间:2023-12-01 07:08:23 24 4
gpt4 key购买 nike

我正在解析一个程序的输出,该程序每行打印两个单词,并且这些单词可以重复。输出已排序。

a  1
a 2
b 5
c 6
c 6
d 3
e 1
e 1
e 2
f 0

我想创建一个如下所示的字典(使用我提供的输入数据):

[
{"name": "a", numbers: [{"number": "1", "duplicated": false},
{"number": "2", "duplicated": false}]},
{"name": "b", numbers: [{"number": "5", "duplicated": false}],
{"name": "c", numbers: [{"number": "6", "duplicated": true}],
{"name": "d", numbers: [{"number": "3", "duplicated": false}],
{"name": "e", numbers: [{"number": "1", "duplicated": true},
{"number": "2", "duplicated": false}]},
{"name": "f", numbers: [{"number": "0", "duplicated": false}],
]

我怎样才能实现这个目标?如果可能的话,除了标准库之外不使用任何东西。

我尝试过的一切看起来都很大、怪异而且丑陋。

没有代码,因为我无法得到任何结果。

最佳答案

您可以构建一个类似于 {name_a: {value1: count1, value2:count2} ...} 的字典,然后从中生成输出:

from collections import defaultdict

name_to_values = defaultdict(lambda: defaultdict(int))
with open('data.txt') as f:
for line in f:
name, value = line.split()
name_to_values[name][value] += 1

out = []
for name in name_to_values:
d = {'name': name}
d['numbers'] = [{'number': value, 'duplicated': count > 1 }
for value, count in name_to_values[name].items()]
out.append(d)

输出:

print(out)

# [{'name': 'a', 'numbers': [{'number': '1', 'duplicated': False}, {'number': '2', 'duplicated': False}]},
# {'name': 'b', 'numbers': [{'number': '5', 'duplicated': False}]},
# {'name': 'c', 'numbers': [{'number': '6', 'duplicated': True}]},
# {'name': 'd', 'numbers': [{'number': '3', 'duplicated': False}]},
# {'name': 'e', 'numbers': [{'number': '1', 'duplicated': True},
# {'number': '2', 'duplicated': False}]},
# {'name': 'f', 'numbers': [{'number': '0', 'duplicated': False}]}]

关于python - 如何使用一些规则将一些纯文本输出转换为 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58338190/

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