如何将字符串拆分为字典并返回特定的字典值?

时间:2015-01-12 20:39:15

标签: python string dictionary

这里对Python很新。

我有一个python脚本,用于评估数据协定的每一行,并根据一组标准提取某些值。我需要修改脚本现在也从DataMember行中提取Name值。但是,我无法使用新的ExtractDataMemberName函数。

首先,我有一个函数使用这个for语句遍历文件的每一行:

for line in file:
        if IsDataMemberAttribute(line):
            name = ExtractDataMemberName(line)
        elif ...

ExtractDataMemberName(line)函数中,我需要从字符串返回Name值,如下面显示的示例输入行。请注意,DataMember行中属性的数量和顺序可能会有所不同。

示例输入:

"[DataMember(Name = "version", EmitDefaultValue = false, Order = 5)]"

预期输出:

version

我尝试了几种方法,包括尝试lstrip [DataMember("和rstrip )],然后尝试将结果字符串拆分为字典,以便我可以找到Name值,但我可以'让它工作。

有人可以推荐从类似字符串中提取Name值的最佳方法吗?

1 个答案:

答案 0 :(得分:1)

使用拆分有点难看:

s = '[DataMember(Name = "version", EmitDefaultValue = false, Order = 5)]'

print(s.split("Name =")[1].split(",")[0].strip()[1:-1])
version

或使用re

import re

print(re.findall("Name\s+=\s+\"(.*?)\",",s)[0])
version