跳转到主要内容

Multipart/* reader从令人惊叹的`aiohttp`项目提取,参看:http://aiohttp.readthedocs.org/en/stable/multipart.html。

项目描述

We are under CI!!

允许读取像混合、相关等的multipart内容。

感谢aiohttp项目的实现,参看:http://aiohttp.readthedocs.org/en/stable/multipart.html。遗憾的是,很多人还没有迁移到asyncio,或者不想使用完整的aiohttp堆栈来读取multipart内容。

在这里,我们尝试保留所有aiohttp逻辑和覆盖率,但除了协程机制。

它做什么

它以与multipart/x内容相同的方式读取。假设我们有一个以下的多部分/相关内容

>>> import json

>>> from email.mime.multipart import MIMEMultipart
>>> from email.mime.base import MIMEBase

>>> multipart = MIMEMultipart('related')

>>> part = MIMEBase('application', 'json')
>>> part.set_payload(json.dumps({'foo': 'bar'}))
>>> multipart.attach(part)

>>> part = MIMEBase('application', 'octet-stream')
>>> part.set_payload(b"Python will save the world. I don't know how. But it will.")
>>> part.add_header('Content-Disposition', 'attachment', filename='python-save-the-world.txt')
>>> multipart.attach(part)

以下是读取它的方法

>>> import io

>>> from multipart_reader import MultipartReader

>>> content = multipart.as_string().split('\n\n', 1)[1]
>>> headers = dict(multipart.items())

>>> stream = io.BytesIO()
>>> stream.write(content)
>>> stream.seek(0)

>>> reader = MultipartReader(headers, stream)

>>> json_part = reader.next()
>>> json_part.json()
{'foo': 'bar'}

>>> file_part = reader.next()
>>> file_part.read()
"Python will save the world. I don't know how. But it will."

>>> file_part.filename
'python-save-the-world.txt'

就是这样…

项目详情


下载文件

下载适合您的平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

multipart-reader-0.2.tar.gz (15.3 kB 查看哈希值)

上传时间

构建分布

multipart_reader-0.2-py3-none-any.whl (13.6 kB 查看哈希值)

上传于 Python 3

multipart_reader-0.2-py2-none-any.whl (13.6 kB 查看哈希值)

上传于 Python 2