python: AttributeError: 'str' object has no attribute 'get'
【摘要】 问题读取properter自定义的文件后,解析dict报错:AttributeError: 'str' object has no attribute 'get'。读取文件的方法class Properties(object): def __init__(self, fileName): self.fileName = fileName self.properties = {}...
问题
读取properter自定义的文件后,解析dict报错:AttributeError: 'str' object has no attribute 'get'。
读取文件的方法
class Properties(object):
def __init__(self, fileName):
self.fileName = fileName
self.properties = {}
def __getDict(self,strName,dictName,value):
if(strName.find('.')>0):
k = strName.split('.')[0]
dictName.setdefault(k,{})
return self.__getDict(strName[len(k)+1:],dictName[k],value)
else:
dictName[strName] = value
return
def getProperties(self):
try:
pro_file = open(self.fileName, 'Ur')
for line in pro_file.readlines():
line = line.strip().replace('\n', '')
if line.find("#")!=-1:
line=line[0:line.find('#')]
if line.find('=') > 0:
strs = line.split('=')
strs[1]= line[len(strs[0])+1:]
self.__getDict(strs[0].strip(),self.properties,strs[1].strip())
except Exception as e:
raise e
else:
pro_file.close()
return self.properties
读取文件的内容
mp_one={"m_x":859,"m_y":331,"z_x":715,"z_y":119}
解析
dictProperties = Properties("config").getProperties()
print(dictProperties.get("mp_one"))
print(dictProperties.get("mp_one").get("m_x"))
错误提示
处理使用eval函数
dict_str = '{"name":"张三","age":"39"}'
list_str = '[{"name":"张三","age":"39"},{"name":"李四","age":"29"}]'
dict_obj = eval(dict_str)
list_obj = eval(list_str)
print(type(dict_obj))
print(type(list_obj))
输出结果
<class 'dict'>
<class 'list'>
描述
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
语法
以下是 eval() 方法的语法:
eval(expression[, globals[, locals]])
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)