python-将键的值替换为与同一字典中的不同键对应的值

索帕纳

我没有Python脚本编写方面的经验,但是作为我项目的要求,我必须构建代码,这是我遇到的问题-

我有一本字典,其字典中的值低于以下值,该字典来自UNIX脚本,用于设置要在python中读取的通用路径-

{'# blah blah blah ': '', 'START_DIR': '/PATH/TO/StartDir', 'FIRST_DIR': '${START_DIR}/FirstDir', '# GIBBERISH': 'MORE GIBBERISH', 'SECOND_DIR': '${FIRST_DIR}/SecondDir'....so on and so forth}

我能够读取这些值,但这些值会像-

FIRST_DIR="${START_DIR}/FirstDir"
SECOND_DIR="${FIRST_DIR}/SecondDir"
.....

由于unix变量在Python中读取时不会扩展,因此我想将字典中所有$ {}包含变量的值替换为dict值中的所有$ {},如下所示-

{'# blah blah blah ': '', 'START_DIR': '/PATH/TO/StartDir', 'FIRST_DIR': '/PATH/TO/StartDir/FirstDir', '# GIBBERISH': 'MORE GIBBERISH', 'SECOND_DIR': '/PATH/TO/StartDir/FirstDir/SecondDir'....so on and so forth}

我搜索了这个论坛,并在此链接找到了最接近的答案-https: //codereview.stackexchange.com/questions/80273/replace-keys-in-values-with-key-values-from-same-字典,但无法解决我的问题。你们中的任何人都可以帮我吗?

谢谢你的时间!

科里·克莱默(Cory Kramer)

您可以re.search用来查找unix样式变量。如果找到匹配项,则用字典中的那个替换该变量。出现while循环是因为这些变量可以引用具有更多变量的变量,等等。因此,请继续进行直到所有变量都已扩展。

import re
def convert_dict(d):
    while any(re.search('\${(.*)}', i) for i in d.values()):
        for key, value in d.items():
            match = re.search('\${(.*)}', value)
            if match:
                d[key] = value.replace(match.group(0), d[match.group(1)])

输出

>>> d = {'FIRST_DIR': '${START_DIR}/FirstDir',
         '# GIBBERISH': 'MORE GIBBERISH',
         '# blah blah blah ': '',
         'SECOND_DIR': '${FIRST_DIR}/SecondDir',
         'START_DIR': '/PATH/TO/StartDir'}
>>> convert_dict(d)
{'FIRST_DIR': '/PATH/TO/StartDir/FirstDir',
 'START_DIR': '/PATH/TO/StartDir',
 '# blah blah blah ': '',
 '# GIBBERISH': 'MORE GIBBERISH',
 'SECOND_DIR': '/PATH/TO/StartDir/FirstDir/SecondDir'}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python3:将一个字典中每个键的多个值除以另一字典中每个键的多个值

来自分类Dev

Python 参考字典键在同一字典中

来自分类Dev

python-如何从字典列表中确定找到的两个键是否属于同一字典

来自分类Dev

python-如何从字典列表中确定找到的两个键是否属于同一字典

来自分类Dev

python:检查一个键中的一定数量的字符是否与同一字典中的另一个键匹配

来自分类Dev

是否有Python方式将一个字典的浮点值添加到另一字典的值列表中?

来自分类Dev

如果字典键中存在,Python 将列表中逗号分隔的单词替换为字典值

来自分类Dev

Python用字典中的值替换键

来自分类Dev

Python-唯一字典的列表,其中每个字典值都是一个列表

来自分类Dev

Python 3将一串键转换为同一行中的值

来自分类Dev

Python3.4字典值替换问题

来自分类Dev

将Python字典的值替换为与其他字典键匹配的另一个字典的值

来自分类Dev

在python中替换字典中的冗余键和值

来自分类Dev

如何针对对应的字典值绘制Python字典键?

来自分类Dev

如何从python字典中的键值对中获取同一键的所有值

来自分类Dev

如何在Python字典中的同一个键上添加多个值

来自分类Dev

Python字典值被分配到不同的键中

来自分类Dev

对不同字典Python中的相同键的多个值求和

来自分类Dev

Python:将值替换为字典键值对中的值

来自分类Dev

在Python中,如何将字典转换为键与df.index值匹配的df列?

来自分类Dev

在Python中,如何将字典转换为键匹配df.index值的df列?

来自分类Dev

将键与python中字典中的值匹配

来自分类Dev

将键映射到Python字典中的值

来自分类Dev

带有对应于键的多个唯一值的Python字典

来自分类Dev

如何在列表和列中的特定键中获取所有唯一字典值?

来自分类Dev

在Python的同一键中将字典值除以另一个值

来自分类Dev

Python从字典中删除一个值而不是键

来自分类Dev

Python:选择键,字典中与给定列表相对应的值

来自分类Dev

使用python返回字典中具有相同对应值的所有键

Related 相关文章

  1. 1

    Python3:将一个字典中每个键的多个值除以另一字典中每个键的多个值

  2. 2

    Python 参考字典键在同一字典中

  3. 3

    python-如何从字典列表中确定找到的两个键是否属于同一字典

  4. 4

    python-如何从字典列表中确定找到的两个键是否属于同一字典

  5. 5

    python:检查一个键中的一定数量的字符是否与同一字典中的另一个键匹配

  6. 6

    是否有Python方式将一个字典的浮点值添加到另一字典的值列表中?

  7. 7

    如果字典键中存在,Python 将列表中逗号分隔的单词替换为字典值

  8. 8

    Python用字典中的值替换键

  9. 9

    Python-唯一字典的列表,其中每个字典值都是一个列表

  10. 10

    Python 3将一串键转换为同一行中的值

  11. 11

    Python3.4字典值替换问题

  12. 12

    将Python字典的值替换为与其他字典键匹配的另一个字典的值

  13. 13

    在python中替换字典中的冗余键和值

  14. 14

    如何针对对应的字典值绘制Python字典键?

  15. 15

    如何从python字典中的键值对中获取同一键的所有值

  16. 16

    如何在Python字典中的同一个键上添加多个值

  17. 17

    Python字典值被分配到不同的键中

  18. 18

    对不同字典Python中的相同键的多个值求和

  19. 19

    Python:将值替换为字典键值对中的值

  20. 20

    在Python中,如何将字典转换为键与df.index值匹配的df列?

  21. 21

    在Python中,如何将字典转换为键匹配df.index值的df列?

  22. 22

    将键与python中字典中的值匹配

  23. 23

    将键映射到Python字典中的值

  24. 24

    带有对应于键的多个唯一值的Python字典

  25. 25

    如何在列表和列中的特定键中获取所有唯一字典值?

  26. 26

    在Python的同一键中将字典值除以另一个值

  27. 27

    Python从字典中删除一个值而不是键

  28. 28

    Python:选择键,字典中与给定列表相对应的值

  29. 29

    使用python返回字典中具有相同对应值的所有键

热门标签

归档