multipart/*阅读器从awsome'aiohttp'项目中提取,参见:http://aiohttp.readthedocs.org/en/stable/multipart.html。

multipart-reader的Python项目详细描述


We are under CI!!

允许读取多部分内容,如混合内容、相关内容等。

感谢aiohttp项目的实施,cf.: http://aiohttp.readthedocs.org/en/stable/multipart.html。不幸的是 人们还没有移动到asyncio,或者不想要完整的aiohttp堆栈 读取多部分内容。

在这里,我们试图保持所有的aiohttp逻辑和覆盖范围,但是协程 机制。

它的功能

它读取multpart/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'

就这样……

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

推荐PyPI第三方库


热门话题
java如何启用TLSv1。3在Tomcat8.5.5中使用JSSE实现   java表单post在jsp中,contentType头没有字符集,为什么?   java My Basic货币转换器程序输出错误   java在Eclipse4中单击最后一个部件(选项卡)时动态创建部件   java 2 servlet,一个在响应中获得ContentLength,另一个则没有   JavaStruts2:如何发送url参数?   linux从java运行bash文件   java TransactionRequiredException执行更新/删除查询   java如何使用JTA插入到表中?   从枚举到泛型的类型的java映射   java使用接口类<T>作为键来获取具体的实例值?