人类可读的、类似于 table 的结构(Python 2.7.1;仅限标准库)
Human-readable, table-like structure (Python 2.7.1; standard library only)
我有一个名为 IBM Maximo Asset Management 7.6.1.2 的 COTS 系统,我可以在其中编写 Python 脚本。
该系统有一些不幸的限制:
- Python 版本为 2.7.1(古代)。从技术上讲,它是 Jython,而不是 Python.
- 我无法导入 Python 库;我只能访问标准 Python 库的一个子集。
- 我无法在服务器上存储文件(即 CSV 或文本文件)。
- 在这种情况下,我无法在数据库中创建自定义 table。
我想在 Python library 脚本中存储一些类似 table 的数据。
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 函数来访问脚本中的数据,类似于从数据库访问数据 table。
我浏览了 Python 文档并找到了列表、集合等机制,但在我未经训练的眼中,人们似乎很难阅读这些机制中的数据。
理想情况下,我会使用 Python 机制,让我以 人类可读的格式 编写 data/text,这样它就可以IT 人员可以轻松进入脚本并在需要时更新值。如果数据易于阅读,并且采用 columnar 格式,那么我认为这将有助于我们在进行更改时避免错误。
问题:
有没有办法在 Python 2.7.1 中存储人类可读的数据(无需添加任何额外的库、使用文件或使用数据库 tables)?
(我知道这是一项艰巨的任务,但我认为可能值得一问,以防碰巧有 suitable 选项。)
似乎是一组很奇怪的要求...
您可以使用多行字符串启动 .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)
这只是一个将文本转为数据结构的例子,
您必须决定哪种结构对您的数据最有意义。
我有一个名为 IBM Maximo Asset Management 7.6.1.2 的 COTS 系统,我可以在其中编写 Python 脚本。
该系统有一些不幸的限制:
- Python 版本为 2.7.1(古代)。从技术上讲,它是 Jython,而不是 Python.
- 我无法导入 Python 库;我只能访问标准 Python 库的一个子集。
- 我无法在服务器上存储文件(即 CSV 或文本文件)。
- 在这种情况下,我无法在数据库中创建自定义 table。
我想在 Python library 脚本中存储一些类似 table 的数据。
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 函数来访问脚本中的数据,类似于从数据库访问数据 table。
我浏览了 Python 文档并找到了列表、集合等机制,但在我未经训练的眼中,人们似乎很难阅读这些机制中的数据。
理想情况下,我会使用 Python 机制,让我以 人类可读的格式 编写 data/text,这样它就可以IT 人员可以轻松进入脚本并在需要时更新值。如果数据易于阅读,并且采用 columnar 格式,那么我认为这将有助于我们在进行更改时避免错误。
问题:
有没有办法在 Python 2.7.1 中存储人类可读的数据(无需添加任何额外的库、使用文件或使用数据库 tables)?
(我知道这是一项艰巨的任务,但我认为可能值得一问,以防碰巧有 suitable 选项。)
似乎是一组很奇怪的要求...
您可以使用多行字符串启动 .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)
这只是一个将文本转为数据结构的例子, 您必须决定哪种结构对您的数据最有意义。