我正在尝试使用带有XML和XML的zip将大型CSV文件上传到GAE. HTTP POST
脚步:
> 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')