[英]Can you Unzip and view content on Google App engine - Python?
我正在尝试使用带有XML和HTTP POST的zip将大型CSV文件上传到GAE
脚步:
CSV经过压缩和base64编码,并通过XML / HTTP POST发送到GAE
GAE - 使用minidom解析XML
GAE - Base64解码ZIP
GAE - 从Zip文件中获取CSV。
我尝试过使用zipfile,但无法弄清楚如何从base 64decoded字符串创建一个zipfile对象
我得到:TypeError:必须使用ZipFile实例作为第一个参数调用unbound方法read()(改为使用str实例)
myZipFile = base64.decodestring(base64ZipFile)
objZip = zipfile.ZipFile(myZipFile,'r')
strCSV = zipfile.ZipFile.read(objZip,'list.csv')
正如Rob所说, ZipFile
需要一个类似文件的对象。 您可以使用StringIO
为字符串提供类似文件的接口。
例如:
import StringIO
myZipFile = base64.decodestring(base64ZipFile)
objZip = zipfile.ZipFile(StringIO.StringIO(myZipFile),'r')
是的你可以。 事实上,我写了一篇博文, 描述了如何做到这一点 。
一种简单的方法可能是使用blob上传API将压缩的csv上传到blobstore,并从那里处理zip文件。 你需要伪造一个表格帖子,但是在发动机方面你的生活可能会更简单。
有一个如何在AppEngine MapReduce中处理压缩数据的例子。 请参阅BlobstoreZipInputReader类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.