跳转到主要内容

用于读取和写入外部数据集的一致可迭代API

项目描述

wq.io

wq.io 是一个用于消费(输入)、迭代和生成(输出)各种格式的外部数据资源的Python库。wq.io 促进了 wq框架 与其他系统和格式的互操作性。

wq.io 旨在可定制,具有一个 基类 和模块化混入类,用于处理 加载解析映射 外部数据到一个方便的API。

Latest PyPI Release Release Notes Documentation License GitHub Stars GitHub Forks GitHub Issues

Travis Build Status Python Support

有些巧合的是,https://wq.io 也是描述wq框架整体的网站的URL。wq.io(网站)上的wq.io(库)文档可以在 https://wq.io/wq.io 查找。

入门

# Recommended: create virtual environment
# python3 -m venv venv
# . venv/bin/activate

# Install entire wq suite (recommended)
pip install wq

# Install only wq.io
pip install wq.io

# To enable wq.io's GIS support
pip install geopandas # includes Shapely & Fiona

# To enable wq.io's Excel write support
pip install xlwt # xls support
pip install xlsxwriter # xlsx support
# (xls/xlsx read support is enabled by default)

有关更多信息,请参阅 wq文档

功能

wq.io 提供了一个通用的 API,用于加载、遍历和写入表格数据集。其基本思想是避免每次需要处理外部数据时都记住如 csvxlrdxml.etree 等库的独特用法。相反,wq.io 将这些库抽象为一个统一的接口,该接口作为一个 可迭代对象,包含 命名元组。尽可能的情况下,数据集的字段名称会自动从源文件中确定,例如 Excel 工作表的列标题。

from wq.io import ExcelFileIO
data = ExcelFileIO(filename='example.xls')
for row in data:
    print(row.name, row.date)

wq.io 提供了多个内置类,如上所述,包括 CsvFileIOXmlFileIOJsonFileIO。还有一个方便的函数 load_file(),它会尝试自动确定对于给定的文件使用哪个类。

from wq.io import load_file
data = load_file('example.csv')
for row in data:
    print(row.name, row.date)

所有包含的 *FileIO 类都支持读写外部文件,尽管 Excel 文件的写入支持需要额外的库(xlwtxlsxwriter),这些库并未作为依赖项列出。

网络客户端

wq.io 还提供了上述每个类的网络能力等效版本,以方便从第三方 Web 服务加载数据。

from wq.io import JsonNetIO
class WebServiceIO(JsonNetIO):
    url = "http://example.com/api"

data = WebServiceIO(params={'type': 'all'})
for row in data:
    print(row.timestamp, row.value)

内部使用强大的 requests 库通过 HTTP 加载数据。

Pandas 分析

当安装了 Pandas 后,wq.io 类上的 as_dataframe() 方法可以用来创建 DataFrame,从而提供更广泛的分析可能性。

instance = WebServiceIO(params={'type': 'all'})
df = instance.as_dataframe()
print(df.value.mean())

GIS 支持

当安装了 FionaShapely 后,wq.io 还可以打开和创建 shapefile 以及其他 OGR 兼容的地理数据格式。

from wq.io import ShapeIO
data = ShapeIO(filename='sites.shp')
for id, site in data.items():
    print(id, site.geometry.wkt)

扩展 wq.io

每个 IO 类由处理过程各个步骤的混合类(loadersparsersmappers)组成。通过扩展这些混合类或上面的预混合类,可以轻松地将 wq.io 扩展到支持任意格式。例如,climata 库 提供了一些自定义 IO 类的示例,用于加载气候和水文数据。

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

wq.io-1.1.0.tar.gz (17.5 kB 查看散列值

上传于

支持者