Python。将字符串转换为目录

Python. Converting string into directory

在 python 中,我了解到可以使用 str() 将多种类型的数据转换为字符串。有什么办法可以扭转这种局面吗?让我告诉你我的意思。

exampleDictionary = {'thing on ground': 'backpack'}
backpack = {'tea': 'Earl Grey'}

def openBackpack():
     #code to grab backpack from exampleDictionary
     #code to convert 'backpack' to backpack
     #code to access backpack and look at the tea

这是对我正在进行的代码的过度简化,但基本上应该很容易看出我卡在哪里。如果不清楚,我很乐意进一步澄清。

您正在寻找 globals()

def openBackpack():
    backpack= globals()[exampleDictionary['thing on ground']]
    print(backpack['tea'])

这是一种非常奇怪的数据处理方式。

我会使用嵌套的字典:

exampleDictionary = {'thing on ground': {'backpack': {'tea': 'Earl Grey'}}}

print exampleDictionary['thing on ground']
print exampleDictionary['thing on ground']['backpack']
print exampleDictionary['thing on ground']['backpack']['tea']

输出:

{'backpack': {'tea': 'Earl Grey'}}
{'tea': 'Earl Grey'}
Earl Grey

此方法在代码中查找字符串和已存在的对象。

exampleDictionary = {'thing on ground': 'backpack'}
backpack = {'tea': 'Earl Grey'}
print( eval(exampleDictionary['thing on ground']) ) 

编辑

根据 Adam Smith 的观点,eval 并不安全,您不应该这样做

...但这是可以做到的,方法如下。

评估https://docs.python.org/2/library/functions.html#eval

接受一个字符串并将其解释为代码。

x = eval("1+2") 
x = 3 

如果您评估用户输入的可能性,您知道用户可以输入的所有内容或 'inject' 到您的代码中是未知的。