从文件中读取普通的python对象

时间:2019-01-17 15:04:13

标签: python object plaintext

我们的客户向我们提供了包含以下数据的文本文件:

{'op-code-gtm-gtm2-count': {'Label': 'op-code-gtm-gtm2-count', 'Datapoints': [{'Timestamp': datetime.datetime(2018, 12, 25, 17, 10, tzinfo=tzlocal()), 'Sum': 79792.0,....

请注意,这是默认的python对象,而不是json对象(否则,我们将使用json.load(file))。
关于如何通过读取此文件来创建python对象的任何建议?

2 个答案:

答案 0 :(得分:-1)

使用eval是最简单的方法,将文本文件读入字符串然后执行以下操作:

obj = eval(datastring.replace(", tzinfo=tzlocal()", "")

由于tzinfo部分未定义,由于datetime部分不是有效的python代码,因此您可以将其替换为任何内容以避免解析该位。仅当所有数据的格式化方式显然都相同时,此修补程序才有效。

但是,尝试以更友好的格式发送输入似乎更容易,更干净。可以是纯python对象或JSON。

答案 1 :(得分:-1)

一个朋友建议此解决方案:

import datetime
from tzlocal import get_localzone as tzlocal

with open('myfile.txt') as f:
   st = f.read()
   data = eval(st)

希望这会有所帮助!