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' 到您的代码中是未知的。
在 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' 到您的代码中是未知的。