我有一个名为IBM Maximo Asset Management 7.6.1.2的COTS系统,我可以在其中编写Python脚本。
该系统有许多不幸的局限性:
- Python版本是2.7.1(古代)。从技术上讲,它是Jython,而不是真正的Python
- 我无法导入Python库;我只能访问标准Python库的一个子集
- 我无法在服务器上存储文件(即CSV或文本文件)
- 在这种情况下,我无法在数据库中创建自定义表
我想在Python库脚本中存储一些类似表的数据。
Table name: DIVISION_SETTINGS
DIVISION FLOW_CONTROL_REQ ACTUAL_COSTS_REQ SETTING3 SETTING4 SETTING5
FLEET 1 1 0 1 A
ROADS 0 1 0 2 B
PARKS 0 1 1 3 C
DIV4 1 0 0 4 D
DIV5 0 0 0 5 E
DIV6 0 1 1 6 F
DIV7 0 1 0 7 G
我会编写一个Python函数,让我访问脚本中的数据,类似于访问数据库表中的数据。
我浏览了Python文档,发现了列表、集合等机制,但在我未经训练的眼中,人们似乎很难读取这些机制中的数据。
理想情况下,我会使用Python机制,让我以人类可读的格式编写数据/文本,这样it人员就可以很容易地进入脚本并在需要时更新值。如果数据易于阅读,并且采用柱状格式,那么我认为这将有助于我们在进行更改时避免错误。
问题:
有没有一种方法可以在Python 2.7.1中存储人类可读的数据(不添加任何额外的库、使用文件或使用数据库表)?
(我知道这是一个很高的要求,但我认为这可能值得一问,以防碰巧有合适的选择。)
似乎是一组非常奇怪的需求。。。
可以用一个多行字符串启动.py文件,脚本可以解析这个字符串并将其转换为一些有用的结构。
python模块中的第一个字符串是__doc__
,因此脚本可以执行以下操作:
"""
data in whatever format you want
"""
#############################################
lines = __doc__.replace('t',' ').split('n')
lines = filter(None, lines)
table = []
for line in lines:
table.append(list(filter(None, line.split(' '))))
#at this point, table is a list of lists of word tokens (for each row)
这只是将文本转换为数据结构的一个示例,您必须决定什么结构对您的数据最有意义。