垃圾“.qs”文件(反)序列化程序

qsck的Python项目详细描述


qsck

用于序列化和反序列化所引用的不稳定格式的python库 作为“.qs”文件。有关完整格式的说明,请通读 tests.test_serializetests.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”记录。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Java中使用工厂设计模式   解析服务器安全性的java最佳实践   java如何解决由于某种原因导致的执行失败?   关于Servlet的java   如何在java中生成一个大的(30MB+)xml文件?   匿名类重写与传递接口,用于在Java中设计回调   java jar从运行时开始。getRuntime()。exec()比从命令行运行的时间长   java Ant脚本排除文件夹(某些文件除外)   java在Windows 10计算机上运行时遇到Maven错误   java Hibernate在同一个表中级联   java PayPal API设置返回URL   java如何在选项卡的右侧显示关闭按钮   当按下Jmenu按钮时,使用java操作侦听器退出程序