用于读取和写入外部数据集的一致可iterable api
wq.io的Python项目详细描述
wq.io是一个用于消费的python库 (输入)、迭代和生成(输出)外部数据资源 各种格式。io促进了wq framework与其他系统和格式之间的互操作性。
wq.io是designed to be customized, 具有base class和模混合 处理loading的类, parsing,和 mapping外部数据到 应用程序编程接口。
Somewhat coincidentally, https://wq.io is also the URL for the website describing the wq framework as a whole. The documentation for wq.io (the library) is available on wq.io (the website) at 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)
有关详细信息,请参见the wq documentation。
功能
io提供了一个通用api,用于加载、遍历和 正在写入表格数据集。基本思想是避免需要记住 例如 csv, xlrd,或 xml.etree 每次需要处理外部数据时。相反,wq.io 将这些库抽象为一个一致的接口,该接口作为 iterable的 namedtuples。 只要可能,数据集的字段名都是自动的 由源文件确定,例如Excel中的列标题 电子表格。
fromwq.ioimportExcelFileIOdata=ExcelFileIO(filename='example.xls')forrowindata:print(row.name,row.date)
wq.io提供了许多与上述类似的内置类,包括 CsvFileIO、XmlFileIO和JsonFileIO。还有一个 方便函数load_file(),尝试自动 确定要用于给定文件的类。
fromwq.ioimportload_filedata=load_file('example.csv')forrowindata:print(row.name,row.date)
所有包含的*FileIO类都支持读和写 对于外部文件,尽管对excel文件的写支持需要 附加库(xlwt和 xlsxwriter)未列出的 作为依赖。
网络客户端
wq.io还提供了上述每一项的网络能力等价物 类,以便于从第三方Web服务加载数据。
fromwq.ioimportJsonNetIOclassWebServiceIO(JsonNetIO):url="http://example.com/api"data=WebServiceIO(params={'type':'all'})forrowindata:print(row.timestamp,row.value)
使用强大的requests库 在内部通过http加载数据。
熊猫分析
安装Pandas时, as_dataframe()wq.io类上的方法可用于创建 DataFrame, 实现更广泛的分析可能性。
instance=WebServiceIO(params={'type':'all'})df=instance.as_dataframe()print(df.value.mean())
地理信息系统支持
当Fiona和 Shapely已安装,wq.io 还可以打开和创建shapefile和其他与ogr兼容的地理位置 数据格式。
fromwq.ioimportShapeIOdata=ShapeIO(filename='sites.shp')forid,siteindata.items():print(id,site.geometry.wkt)
扩展wq.io
每个^ {Tt7} $类由MIXIN类组成 (loaders, parsers,和 mappers)处理各种步骤的 在这个过程中。通过扩展这些混音或上面的混音类, 很容易extend wq.io 支持任意格式。climata library提供了 用于加载气候和水文的自定义IO类的示例 数据。