跳转到主要内容

Django中处理CSV的实用工具

项目描述

包含CSV交互的辅助器。

有两个主要用途

  • 运行带有导入器列表的导入命令

  • 导出流式CSV响应导出

示例导入

from django_csv_utils import CSVImportException, ImportCommand, Importer
from users.models import User


class UserImporter(Importer):
    """Imports User objects from a CSV."""
    header = [
        "first_name",
        "last_name",
        "email",
    ]

    def import_row(self, row):
        errors = []
        first_name = row.get("first_name", "")
        last_name = row.get("last_name", "")
        email = self.get_str_errblank(row, "email", errors).lower()
        if User.objects.filter(email=email).exists():
            errors.append("The email {} is already in use".format(email))
        if errors:
            raise CSVImportException(', '.join([str(e) for e in errors]))
        new_user = User.objects.create(
            email=email, first_name=first_name, last_name=last_name)
        return "Imported {0}".format(new_user.get_full_name())


class Command(ImportCommand):
    imports = {'users': UserImporter}

示例StreamingHTTPResponse

from django_csv_utils import StreamingCSVView
from users.models import User


class UserCSVView(StreamingCSVView):
    """Give the list of users."""
    header = [
        'fist_name',
        'last_name',
        'email',
    ]

    def get_queryset(self):
        """Return the right list of users."""
        return User.objects.filter(is_active=True, is_superuser=False)

    def get_row(self, item):
        return (
            item.first_name,
            item.last_name,
            item.email,
        )

项目详情


下载文件

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

源分发

django-csv-utils-1.0.2.tar.gz (5.9 kB 查看哈希)

上传时间:

构建分发

django_csv_utils-1.0.2-py2.py3-none-any.whl (8.0 kB 查看哈希)

上传时间: Python 2 Python 3

支持者