分析数据文件中的常见结构
项目描述
structa是一个小型、半魔法般的实用工具,用于辨别大型数据文件的“整体结构”。通常这类似于JSON格式的面向文档的数据库、数据库转储的CSV文件或YAML文档。
用法
从命令行使用
structa <filename>
提供常规的--help和--version开关以获取更多信息。完整的文档也可能有助于理解各种开关!
示例
在太空中的人API显示了目前太空中的人数以及他们的名字和航天器名称
curl -s http://api.open-notify.org/astros.json | structa
输出
{ 'message': str range="success" pattern="success", 'number': int range=10, 'people': [ { 'craft': str range="ISS".."Tiangong", 'name': str range="Akihiko Hoshide".."Thomas Pesquet" } ] }
Python包索引(PyPI)为包提供JSON API。您可以将几个包的JSON输入到structa中,以了解这些记录的整体结构(当structa在单次调用中给定多个输入时,它假定它们有共同的来源)
for pkg in numpy scipy pandas matplotlib structa; do curl -s https://pypi.ac.cn/pypi/$pkg/json > $pkg.json done structa numpy.json scipy.json pandas.json matplotlib.json structa.json
输出
{ 'info': { str: value }, 'last_serial': int range=11.9M..13.1M, 'releases': { str range="0.1".."3.5.1": [ { 'comment_text': str, 'digests': { 'md5': str pattern="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 'sha256': str pattern="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, 'downloads': int range=-1, 'filename': str, 'has_sig': bool, 'md5_digest': str pattern="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 'packagetype': str range="bdist_wheel".."sdist", 'python_version': str range="2.4".."source", 'requires_python': value, 'size': int range=39.3K..118.4M, 'upload_time': str of timestamp range=2006-01-09 14:02:01..2022-03-10 16:45:20 pattern="%Y-%m-%dT%H:%M:%S", 'upload_time_iso_8601': str of timestamp range=2009-04-06 06:19:25..2022-03-10 16:45:20 pattern="%Y-%m-%dT%H:%M:%S.%f%z", 'url': URL, 'yanked': bool, 'yanked_reason': value } ] }, 'urls': [ { 'comment_text': str range="", 'digests': { 'md5': str pattern="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 'sha256': str pattern="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }, 'downloads': int range=-1, 'filename': str, 'has_sig': bool, 'md5_digest': str pattern="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 'packagetype': str range="bdist_wheel".."sdist", 'python_version': str range="cp310".."source", 'requires_python': value, 'size': int range=47.2K..55.6M, 'upload_time': str of timestamp range=2021-10-27 23:57:01..2022-03-10 16:45:20 pattern="%Y-%m-%dT%H:%M:%S", 'upload_time_iso_8601': str of timestamp range=2021-10-27 23:57:01..2022-03-10 16:45:20 pattern="%Y-%m-%dT%H:%M:%S.%f%z", 'url': URL, 'yanked': bool, 'yanked_reason': value } ], 'vulnerabilities': [ empty ] }
Ubuntu 安全通告数据库包含 Ubuntu 版本中所有安全问题的列表(警告:分析此数据库需要一些时间,并且在此过程中会消耗大约 1GB 的 RAM)。
curl -s https://usn.ubuntu.com/usn-db/database.json | structa
输出
{ str range="1430-1".."4630-1" pattern="dddd-d": { 'action'?: str, 'cves': [ str ], 'description': str, 'id': str range="1430-1".."4630-1" pattern="dddd-d", 'isummary'?: str, 'releases': { str range="artful".."zesty": { 'allbinaries'?: { str: { 'version': str } }, 'archs'?: { str range="all".."source": { 'urls': { URL: { 'md5': str pattern="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 'size': int range=20..1.2G } } } }, 'binaries': { str: { 'version': str } }, 'sources': { str: { 'description': str, 'version': str } } } }, 'summary': str, 'timestamp': float of timestamp range=2012-04-27 12:57:41..2020-11-11 18:01:48, 'title': str } }
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
structa-0.4.tar.gz (49.6 kB 查看散列)
构建分发
structa-0.4-py3-none-any.whl (51.8 kB 查看散列)
关闭
structa-0.4.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | df1ecb467729ded61de3e5fa535b9d1e97467e34d0ac8b97b263f2cf3d630956 |
|
MD5 | ab44cb22cd567ff49f7c6c1aaebebc2c |
|
BLAKE2b-256 | 786b642bb4b68695e78716627c24b92c94b0fd2e3ec971b0f4c217b46e46c490 |
关闭
structa-0.4-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | aa90bd7cdf1bb532c1b6be1ba2b2d5c67ed7fd30663d81fca9c681d4d913f0d9 |
|
MD5 | 97f37c8ecd9a6e7b8dbea834af32904f |
|
BLAKE2b-256 | 4a15bc50b5546ed62f17bdd6a266229f2df4d9c72b4fc54ab6d4914d42d600aa |