gpt4 book ai didi

python - 有没有办法在找到字符串值之前一直为嵌套字典编制索引?

转载 作者:太空宇宙 更新时间:2023-11-04 01:47:11 29 4
gpt4 key购买 nike

我正在使用字典。它有一些嵌套的字典。它看起来像这样:

如您所见,educationexperience 有嵌套的字典。 skillsindustrysummary 只是带有值的键。

{
"education": [
{
"start": "1991",
"major": "Human Resources"
},
{
"start": "1984",
"major": "Chemistry"
}
],
"skills": [
"AML",
"Relationship Management",
"Team Management"
],
"industry": "Banking",
"experience": [
{
"org": "Standard Chartered Bank",
"desc": "text"
},
{
"org": "Tesa Tapes India Pvt. Ltd.",
"desc": "text",
"start": "October 1993",
"title": "Product Manager/Application Engineer"
}
],
"summary": "text blah blah blah"
}

我需要访问与键 startmajorskillsindustry< 中的字符串列表对应的所有值orgdescsummary,以便我可以修改字符串。

那么有没有办法像这样访问这些值:

for keys in outerDict.keys():
if outerDict[keys] has a nested dict:
for keys in nestedDict.keys():
nestedDict[keys] = doStuffToString(nestedDict[keys])
else:
outerDict[keys] = doStuffToString(outerDict[keys])

换句话说,继续索引嵌套的字典(如果它们存在)直到找到一个字符串值。

更好的答案可能会处理一般情况:可变数量的字典嵌套在其他字典中。也许有多层嵌套的字典(字典内部的字典内部的字典内部的字典......直到最终你遇到一些字符串/整数)。

最佳答案

您可以使用递归函数。

此函数将遍历字典,当它遇到一个列表时,它将遍历该列表中的每个字典,直到找到您要查找的任何键。然后它将该条目的值更改为 new_text:

    def change_all_key_text(input_dict, targ_key, new_text):
for key, val in input_dict.items():
if key == targ_key:
input_dict[key] = new_text
elif isinstance(val, list):
for new_dict in val:
if isinstance(new_dict, dict):
change_all_key_text(new_dict, targ_key, new_text)

根据您的评论,如果您想更改每个字符串,而不考虑键(不包括键本身):

def modify_all_strings(input_iterable, new_text):
if isinstance(input_iterable, dict):
for key, val in input_iterable.items():
if isinstance(val, dict) or isinstance(val, list):
modify_all_strings(val, new_text)
else:
# make changes to string here
input_iterable[key] = new_text
elif isinstance(input_iterable, list):
for idx, item in enumerate(input_iterable):
if isinstance(item, dict) or isinstance(item, list):
modify_all_strings(item, new_text)
else:
# make changes to string here
input_iterable[idx] = new_text

在这里,您可以通过向字典添加一些结构来获益。由于主字典中每个键的值可以是字典列表、字符串或字符串列表,因此您必须考虑许多输入情况。我不确定你是否已经了解了典型的 tree data structures或不是,但它可以帮助创建一个节点类并确保每个部分都是一个节点。

关于python - 有没有办法在找到字符串值之前一直为嵌套字典编制索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58840621/

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