在找到字符串值之前,有没有办法保持对嵌套字典的索引?

数据

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

如您所见,education并且experience具有嵌套字典。skillsindustry并且summary只是带有值的键。

{
  "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"
}

我需要访问对应的所有键的值startmajor从字符串列表skillsindustryorgdescsummary,这样我可以修改字符串。

因此,有一些方法可以访问这样的值:

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])

换句话说,继续为嵌套dict(如果存在)建立索引,直到找到字符串值。

更好的答案可能是处理一般情况:嵌套在其他字典中的可变数目的字典。也许有嵌套的dict深入了几层(在dict里面的dict里面的dict里面的dict……直到最终您击中了一些字符串/整数)。

big_bad_bison

您可以使用递归函数。

该函数将遍历字典,当遇到列表时,它将遍历该列表中的每个字典,直到找到您要查找的键。然后,它将该条目的值更改为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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有办法使用连接的字符串键访问嵌套字典?

来自分类Dev

有没有办法查看字符串是否与字典键匹配以及是否打印其值?Python

来自分类Dev

有没有办法从R中的字符串中按索引删除字符?

来自分类Dev

有没有办法使用 for 循环从索引中删除特定字符串?

来自分类Dev

有没有办法替换已知字符串之前的URL中的字符串?

来自分类Dev

有没有办法在Swift中更改NSTextView容器的字符串值?

来自分类Dev

有没有办法将深度嵌套对象的所有值类型都定义为字符串类型?

来自分类Dev

有没有办法生成带有内联和索引参数的查询字符串?

来自分类Dev

有没有办法对字符串上的单词进行模糊字符串匹配?

来自分类Dev

有没有办法检查字符串中允许的最大十六进制值?

来自分类Dev

有没有办法将空字符串替换为MariaDB中的NULL值?

来自分类Dev

有没有办法通过函数将字符串值从View传递到js文件

来自分类Dev

有没有办法让这段代码计算数组中重复值的数量,为字符串工作?

来自分类Dev

有没有办法改变 Laravel 加密算法,使其针对相同的字符串生成相同的值?

来自分类Dev

有没有办法从PHP中的字符串中删除所有JavaScript?

来自分类Dev

有没有办法有选择地应用此字符串函数?

来自分类Dev

有没有办法以字符串开头的对象的所有属性

来自分类Dev

有没有办法删除字符串中的所有空格?javascript

来自分类Dev

有没有办法删除BigQuery中的字符串数组中的字符?

来自分类Dev

有没有办法在C中的字符串中重复字符?

来自分类Dev

ruby 有没有办法从字符串中完全取消转义字符?

来自分类Dev

有没有办法从单个列表制作字典,该字典的键和值取自特定索引

来自分类Dev

有没有办法删除字符串中重复的和连续的单词/短语?

来自分类Dev

有没有办法更好地解析字符串?

来自分类Dev

PHP-有没有办法将字符串“包含”为文件?

来自分类Dev

有没有办法在变量中声明Groovy字符串格式?

来自分类Dev

有没有办法“将字符串转换为vector <int>”?

来自分类Dev

Jackson中有没有办法检查JSON字符串是否与POJO兼容?

来自分类Dev

Java:有没有办法知道字符串中原始数据的类型

Related 相关文章

  1. 1

    有没有办法使用连接的字符串键访问嵌套字典?

  2. 2

    有没有办法查看字符串是否与字典键匹配以及是否打印其值?Python

  3. 3

    有没有办法从R中的字符串中按索引删除字符?

  4. 4

    有没有办法使用 for 循环从索引中删除特定字符串?

  5. 5

    有没有办法替换已知字符串之前的URL中的字符串?

  6. 6

    有没有办法在Swift中更改NSTextView容器的字符串值?

  7. 7

    有没有办法将深度嵌套对象的所有值类型都定义为字符串类型?

  8. 8

    有没有办法生成带有内联和索引参数的查询字符串?

  9. 9

    有没有办法对字符串上的单词进行模糊字符串匹配?

  10. 10

    有没有办法检查字符串中允许的最大十六进制值?

  11. 11

    有没有办法将空字符串替换为MariaDB中的NULL值?

  12. 12

    有没有办法通过函数将字符串值从View传递到js文件

  13. 13

    有没有办法让这段代码计算数组中重复值的数量,为字符串工作?

  14. 14

    有没有办法改变 Laravel 加密算法,使其针对相同的字符串生成相同的值?

  15. 15

    有没有办法从PHP中的字符串中删除所有JavaScript?

  16. 16

    有没有办法有选择地应用此字符串函数?

  17. 17

    有没有办法以字符串开头的对象的所有属性

  18. 18

    有没有办法删除字符串中的所有空格?javascript

  19. 19

    有没有办法删除BigQuery中的字符串数组中的字符?

  20. 20

    有没有办法在C中的字符串中重复字符?

  21. 21

    ruby 有没有办法从字符串中完全取消转义字符?

  22. 22

    有没有办法从单个列表制作字典,该字典的键和值取自特定索引

  23. 23

    有没有办法删除字符串中重复的和连续的单词/短语?

  24. 24

    有没有办法更好地解析字符串?

  25. 25

    PHP-有没有办法将字符串“包含”为文件?

  26. 26

    有没有办法在变量中声明Groovy字符串格式?

  27. 27

    有没有办法“将字符串转换为vector <int>”?

  28. 28

    Jackson中有没有办法检查JSON字符串是否与POJO兼容?

  29. 29

    Java:有没有办法知道字符串中原始数据的类型

热门标签

归档