如何将数据正确转换为所需类型?

时间:2018-04-16 09:00:48

标签: python python-3.x list dictionary

list of dictionaries

我的数据是{'yMax': u'156', 'xMax': u'4802', 'xMin': u'4770','yMin': u'141', 'id': '1', 'name': ''} {'yMax': u'157', 'xMax': u'4895', 'xMin': u'4810','yMin': u'141', 'id': '2', 'name': ''} ,因为示例在列表中的更多字典上面共享。这个例子让他们硬编码,但在实际情况下他们是在一个txt文件,我的问题是让他们正确地从该格式的txt文件中读取。 查看我的.txt文件中的数据

strings

事情是在硬编码版本上进行了进一步处理但是当我从文件中读取它时没有,因为我可能正在阅读它们json.load而不是字典并且不确定什么是最有效的方法修复就是这样,我尝试将它们作为re.findall(r'\d+', str(labels1))或逐行读取,然后使用myRef.orderByChild("BloodGroup") .equalTo("Type O") .orderByChild("city") .equalTo("NY"); 来获取数字并逐个附加dict,但这是一个forstle甚至不起作用。

2 个答案:

答案 0 :(得分:1)

是的,当您阅读文件时,内容将保存到string变量。您可以对此变量使用eval函数,将其转换为您想要的。 Documentation. 但请注意,eval isn't secure, so consider also this solution

在具体案例中,它应该如下:

with open("my_file_with_formated_data", "r") as file:
    my_data = file.read()
    labels1 = eval(my_data)

您也可以使用ast literal eval代替eval来确保一切安全。

答案 1 :(得分:1)

您可以使用比{eval更安全的ast。阅读更多:Convert a String representation of a Dictionary to a dictionary?

import ast

file = open("file.txt", 'r')

for line in file.readlines():
    dicObj = ast.literal_eval(line.strip('\n'))
    print(isinstance(dicObj, dict))