跳转到主要内容

纯Python PartiQL 解析器

项目描述

py-partiql-parser

PartiQL语言的标记器/解析器/执行器,使用Python编写。

很多beta版本,非常棒。请随意提出您遇到的任何问题。

S3 使用

import json
from py_partiql_parser import S3SelectParser

original_json = json.dumps({"a1": "b1", "a2": "b2"})
parser = S3SelectParser(source_data={"s3object": original_json})
result = parser.parse("SELECT * FROM s3object")

DynamoDB 使用

import json
from py_partiql_parser import DynamoDBStatementParser

parser = DynamoDBStatementParser(source_data={"table1": {"a1": {"S": "b1"}, "a2": {"S": "b2"}}})
result = parser.parse("SELECT * from table1 WHERE a1 = ?", parameters=[{"S": "b1"}])

内容

这个库的重要逻辑可以在以下位置找到: https://github.com/bblommers/py-partiql-parser/blob/main/py_partiql_parser/_internal/parser.py

它实现为一个简单的、无依赖项、TDD-first的标记器。

突出

  • 支持如 count(*) 这样的函数
  • 支持CSV转换。在 _internal/csv_converter.py 中已经开始了工作
  • 还有很多其他东西。

注意

这个库的第一版是基于以下规范编写的: https://partiql.org/assets/PartiQL-Specification.pdf

AWS并没有遵循自己的规范,最明显的是

  • 包含多个JSON文档的列表文件无法正常查询(select * 返回所有内容,但无法对列表中的每个文档执行 select key
  • 不支持 select values

安全联系方式

要报告安全漏洞,请使用Tidelift安全联系方式。Tidelift将协调修复和披露。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪一个,请了解更多关于安装包的信息。

源代码分发

py_partiql_parser-0.5.6.tar.gz (16.9 kB 查看哈希值)

上传时间 源代码

构建分发

py_partiql_parser-0.5.6-py2.py3-none-any.whl (23.2 kB 查看哈希值)

上传时间 Python 2 Python 3