垃圾“.qs”文件(反)序列化程序
qsck的Python项目详细描述
qsck
用于序列化和反序列化所引用的不稳定格式的python库 作为“.qs”文件。有关完整格式的说明,请通读 tests.test_serialize 和 tests.test_deserialize 测试套件和推断。
快速启动
仅使用python≥3.6。要安装它,只需:
pip3 install qsck
序列化数据
通过Python:
python3 -c "import qsck; print(qsck.serialize('LOG', '1553302923', [
('first_key', 'some value'),
('2nd_key', [('attr1', 'foo'), ('attr2', 'bar')]),
('3rd_key', {'subKey1': '-3', 'subKey2': None}),
('4th_key', None)
]))"
出来一个“.qs”记录,就像这样:
LOG,1553302923,first_key=some value,2nd_key={attr1=foo, attr2=bar},3rd_key={"subKey1":"-3","subKey2":null},4th_key=(null)
库还支持通过通过
命令行工具qs-format
,每行一条记录:
qs-format my-records.json > my-records.qs
反序列化数据
通过Python:
python3 -c "import pprint, qsck; pprint.pprint(qsck.deserialize(
'LOG,1553302923,first_key=some value,2nd_key={attr1=foo, \
attr2=bar},3rd_key={\"subKey1\":\"-3\",\"subKey2\":null},4th_key=(null)'))"
一个友好的python集合:
('LOG',
'1553302923',
[('first_key', 'some value'),
('2nd_key', [('attr1', 'foo'), ('attr2', 'bar')]),
('3rd_key', {'subKey1': '-3', 'subKey2': None}),
('4th_key', None)])
库提供的qs-parse
命令行工具支持反序列化整个
“.qs”日志文件,每个输入行向stdout发送一条json记录:
qs-parse my-records.qs > my-records.json
贡献
真的吗?非常欢迎。做平常的叉子和提交公关的事情。
运行测试:
python setup.py test
分发:
pip3 install --upgrade twine wheel setuptools
python setup.py sdist bdist_wheel
twine upload dist/*
更改日志
0.3
-更好的反序列化
- 在.qs记录中添加对时髦的“嵌套列表”的支持
- 压扁复合逗号(
,
)值
0.2
–添加了反序列化
添加对反序列化“.qs”记录的支持。
0.1
–初始释放
支持序列化“.qs”记录。