gpt4 book ai didi

python - 将字典添加到字典中,使其在 Python 中看起来更像 JSON

转载 作者:行者123 更新时间:2023-11-28 22:26:20 24 4
gpt4 key购买 nike

我有一个在循环中创建的字典,我需要同时将这些字典附加到另一个字典。这样做有什么优雅的方法吗?

f_temp = df['Relevant findings'].values.tolist()[0:8]
f_list = [x for i, x in enumerate(f_temp) if i == f_temp.index(x)]
f_num_total = len(f_list)
f_rand = random.randrange(1, f_num_total+1)

def create_rep(arr, row_data, condname, modality): # get findings
params = []
# to_json = []
if condname == 'Mass' and modality == 'Mammography':
for i in range(len(arr)):
params += grab_data(row_data, 0, 14, 19)
row_data += 1

for i in range(f_rand):
f = random.choice(f_list)
if f == 'Mass':
rep_temp = create_rep(iter_params_mass, row, f, r)
finding = {f: rep_temp}
#and now I have no idea where to go

>>>{'Assymetry': {'Assymetry': ['Global asymmetry']}}

我想将结果一个一个地附加到另一本字典中,使其看起来像:

{'Findings/s':
{'Assymetry':
{'Assymetry': ['Global asymmetry']}},
{'Mass':
{'Shape': ['Oval']}}
}

有什么想法,或者创建嵌套 JSON 对象的方法吗?我正在迭代很多循环,所以我不确定什么是最佳做法。

最佳答案

你好像想多了。

Findings/s 的值应该是一个列表,然后可以将每个生成的字典附加到它。我正在使用 defaultdict这样第一次迭代就不需要检查 d['Finding'] 是否已经存在。

from collections import defaultdict

d = defaultdict(list)
for i in range(f_rand):
f = random.choice(f_list)
if f == 'Mass':
rep_temp = create_rep(iter_params_mass, row, f, r)
d['Findings/s'].append({f: rep_temp})

注意:如果f 不是'Mass',您将得到一个NameError,因为rep_temp 不会'没有定义,你需要解决这个问题。

此外,您将 create_rep 的返回值重新分配给 rep_temp,但 create_rep 不返回任何内容。因此,除非这不是您的完整代码,否则您会得到一些意想不到的结果。

关于python - 将字典添加到字典中,使其在 Python 中看起来更像 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44885595/

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