SQLAlchemy实用程序,用于对表数据进行标准化/非规范化,对CSV有用

sqlalchemy-csv-normalise的Python项目详细描述


sqlalchemy csv标准化

https://img.shields.io/pypi/v/sqlalchemy-csv-normalise.svghttps://travis-ci.com/mohawk2/sqlalchemy-csv-normalise.svg?branch=masterDocumentation StatusUpdates

SQLAlchemy实用程序,用于对表数据进行标准化/非规范化,对CSV有用

其中,表被规范化为具有值的“查找表” 通过数字外键ID引用,这些函数将 启用数据提取(或相反,从中加载) 在中替换查找的值。除此之外 允许更人性化的数据编辑,例如电子表格。在

示例:

from sqlalchemy_csv_normalise import denormalise_prepare
q, col_names = denormalise_prepare(db.session, table)
filename = table_to_filename(table)
with open(filename, 'w', newline='') as csv_file:
    csv_file_writer = csv.writer(csv_file)
    csv_file_writer.writerow(col_names)
    csv_file_writer.writerows(q.all())

from sqlalchemy_csv_normalise import renormalise_prepare, empty_deleter,\
    type_coercer
row_maker = renormalise_prepare(db.session, table)
row_cleaner = empty_deleter(table)
row_coercer = type_coercer(table)
filename = table_to_filename(table)
with open(filename, newline='') as csv_file:
    for d in csv.DictReader(csv_file):
        row = row_coercer(row_cleaner(row_maker(d)))
        db.session.add(table(**row))
db.session.commit()

特点

  • 非规范化\u prepare(会话、表、colname\u tidier)

返回SQLAlchemy查询及其将返回的列名。 如果任何外键(FK)引用 表的唯一列不是其主键。在

任何FK列的名称都将从末尾去掉\u id 作为一个简单的启发。通过提供一个colname_tidier覆盖此选项。在

  • 空删除器(表)

返回函数,该函数返回给定dict减去可为null的空字符串 柱。 很有用,因为CSV无法记录NULL。在

  • 型强制器(表)

返回给定行dict将强制值的函数。 适用于约会和布尔人。 将只对字符串进行操作,因此如果在已经 得到了非字符串值,它们将不受影响。在

  • renormalise_prepare(会话、表、colname\u tidier)

返回将重新规范化给定字典的函数 是否准备反规范化反操作。在

学分

此包是用Cookiecutteraudreyr/cookiecutter-pypackage项目模板创建的。在

历史

0.1.1(2020-02-01)

  • PyPI的第一个版本。在

0.1.2(2020-02-01)

  • 使类型强制器仅影响字符串值

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

推荐PyPI第三方库


热门话题
Spring 4升级后未加载java应用程序上下文   java Android 2.3.3 internet可以在我的Galaxy S上运行,但不能在我的Galaxy选项卡上运行?(许可?)   java通过不改变其原始位置对大小写字母进行排序   java Spring Boot一直在破坏我的电脑。。。sts的最佳配置是什么。Windows 10上的ini文件?   css Java Spring+引导问题   java Jackson将GeoJsonPoint序列化为纬度/经度   xml Java Transformer:如何将其结果生成OutputStream?   java如何更改字体、文本大小和设置文本位置?   在JavaSpringHibernate3.6.3中,如何告诉一个方法等待,直到获得锁,以及如何重试失败的事务?   java安卓服务代替线程   Java Swing使用鼠标移动JFrame