基于json表模式描述符生成sql表,加载和提取数据。

tableschema-sql的Python项目详细描述


表模式SQL PY

TravisCoverallsPyPiGitter

基于Table Schema描述符生成并加载sql表。

功能

  • 实现tableschema.Storage接口
  • 提供其他功能,如索引和更新

内容

开始

安装

包使用语义版本控制。这意味着主要版本可能包括破坏性更改。强烈建议在setup/requirements文件中指定package版本范围,例如package>=1.0,<2.0

pip install tableschema-sql

示例

本自述中的代码示例需要Python3.3+解释器。您可以在examples目录中看到更多示例。

fromtableschemaimportTablefromsqlalchemyimportcreate_engine# Load and save table to SQLengine=create_engine('sqlite://')table=Table('data.csv',schema='schema.json')table.save('data',storage='sql',engine=engine)

文档

这里描述了这个包的整个公共api,并遵循语义版本控制规则。本自述文件之外的所有内容都是私有api,可以在不通知任何新版本的情况下进行更改。

储存

包实现Tabular Storage接口(请参阅链接上的完整文档):

Storage

此驱动程序提供了一个附加的api:

Storage(engine, dbschema=None, prefix='', reflect_only=None, autoincrement=False)

  • engine (object)-sqlalchemy引擎
  • dbschema (str)-数据库架构的名称
  • prefix (str)-所有存储桶的前缀
  • reflect_only (callable)-一个布尔谓词,用于在反射时筛选表名列表
  • autoincrement (bool)-在开头添加自动递增列

storage.create(..., indexes_fields=None)

  • indexes_fields (str[])-包含字段名的元组列表,或此类列表的列表

storage.write(..., keyed=False, as_generator=False, update_keys=None)

  • keyed (bool)-接受键控行
  • as_generator (bool)-返回生成器以向客户端提供写入控制
  • {< CD17> } -更新,而不是插入,如果键值匹配现有行

贡献

该项目遵循Open Knowledge International coding standards

建议的入门方法是创建和激活项目虚拟环境。 要将包和开发依赖项安装到活动环境中,请执行以下操作:

$ make install

要使用绒布和覆盖率运行测试:

$ make test

pylama.ini中配置的pylama用于linting。在这个舞台上 安装到您的环境中,可以与更细粒度的控件分开使用 如文档-https://pylama.readthedocs.io/en/latest/中所述。

例如,按错误类型对结果排序:

$ pylama --sort <path>

使用tox.ini中配置的tox进行测试。 它已经安装到您的环境中,可以与文档-https://testrun.org/tox/latest/中描述的更细粒度的控件分开使用。

例如,根据python 2环境检查测试子集,增加了详细程度。 --之后的所有位置参数和选项都将传递给py.test

tox -e py27 -- -v tests/<path>

在引擎盖下,tox使用在pytest.inicoverage中配置的pytest。 以及mock包。此软件包仅在毒物环境中可用。

更改日志

这里只描述了打破和最重要的变化。所有发布版本的完整变更日志和文档都可以在格式良好的commit history中找到。

v1.0

  • 增加了对sqlite数据库的fk支持

v0.x

  • 初始驱动程序实现。

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

推荐PyPI第三方库


热门话题
使用Selenium Java查找筛选器窗格“铅笔图标”的元素时出现问题   分布式缓存l2上使用infinispan和hibernate的java连接锁   使用Java的DOM XML API解析XML中的符号和   java是解析和操作字符串的有效方法   java发布NewRelicMeterRegistry时如何过滤仪表   多维数组在java中读取文件后将数据值分组   java如何将httpClient配置为jsoup   java BreakIterator在Android中是如何工作的?   找不到maven GAE类:原因:java。lang.ClassNotFoundException应用程序标识cRedential$AppenginecRedential包装   Jlabel调整java大小   调试如何在VScode中的java类依赖项中设置断点   java正在获取文件夹名,而不是。mp3文件{Android}   java如何将从DiffieHellman类生成的AES密钥添加到使用该密钥的类