Python:将字符串转换为变量及其值

2024-04-29 15:32:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python比较陌生。你知道吗

我正在编写的程序使用while循环逐行读取XML文件。读取的数据被拆分,因此我得到的信息类似于:

数据=['Name=“Date”','Tag=“0x03442333”','Level=“Acquisition”','Type=“String”']

-在我的程序中,我想分配给一些变量,这些变量的调用方式与前面字符串中=符号前的单词、=符号后的信息完全相同。然后我将把它们作为类的属性引入(这已经起作用了) -到目前为止我所做的是:

Name = ''
Tag = ''
Level = ''
Type = ''

for i in datas:
    exec(i)

-那样很好用。但是,我不想使用exec函数。还有别的办法吗?你知道吗

谢谢


Tags: 文件数据name程序信息datetagtype
3条回答

exec通常是解决这个问题的方法。您也可以直接将其添加到globals()字典中,但这有时会有点危险。你知道吗

for pair in datas:
    name, value = pair.split("=")
    globals()[name] = eval(value)

这里最多讨论一下你期望做什么。To convert string to variable name。你知道吗

但理想情况下你应该做的是创建一个字典。这样地。你知道吗

for i in datas:
    (key,value)=i.split("=")
    d[key] = eval(value)

注意:仍然避免使用eval。你知道吗

出于安全原因,您应该避免使用exec,而且您可能应该将字段值保留在dict或类似的结构中。最好让Python库完成整个解析。例如,使用ElementTree

import xml.etree.ElementTree as ET
tree = ET.parse('myfile.xml')
root = tree.getroot()

然后迭代root及其子级,具体取决于XML数据的外观。你知道吗

相关问题 更多 >