如何读取或解析远程csv(在Google Drive上)GAE(Python)

如何读取或解析远程csv(在Google Drive上)GAE(Python),python,google-app-engine,csv,Python,Google App Engine,Csv,我在谷歌硬盘上有csv文件,它们是公共的,我必须用Python阅读GAE中的csv文件 我的解决办法是 def get_content(self, id): file = self.get_item(id) if file['downloadUrl'] is not None: url = file.get('downloadUrl') content = self.service._http.request(ur

我在谷歌硬盘上有csv文件,它们是公共的,我必须用Python阅读GAE中的csv文件

我的解决办法是


def get_content(self, id):
        file = self.get_item(id)
        if file['downloadUrl'] is not None:
            url = file.get('downloadUrl')
            content = self.service._http.request(url)
            return content
        else:
            return None

但我不分析这些内容,有什么想法吗?

这很简单。我建议您花一些时间阅读StringIO的功能和使用方法,您可能会发现您将使用一些

from StringIO import StringIO
import csv


content = StringIO(content)
reader = csv.reader(StringIO(content))
如果需要编写csv文件,您将使用相同的机制

def getService(self):
    http = httplib2.Http()
    scope = ['https://www.googleapis.com/auth/drive']
    cred = build_credentials(scope=scope)
    cred.authorize(http)
    service = build("drive", "v2", http=http)
    return service

def getFileFromDrive(self):
    service = self.getService()
    myfile = service.files().get(fileId="myfileId").execute()
    url = myfile['downloadUrl']
    content = service._http.request(url)
    return content

def fileOpeation(self):
    content = self.getFileFromDrive()
    StringIO(content)
    reader = csv.reader(StringIO(content))
    return reader

这里是我的最后一个代码,这是成功的!谢谢你,Tim

看看python标准csv解析器。它在文档中。我知道python标准解析器,但在文档中我为csv阅读器设置了csv绝对路径,但我没有设置绝对路径,所以我的csv文件在google drive中。。。我有谷歌驱动器文件流读取流…你不需要使用路径。将http请求的结果包装在StringIO实例中,然后将其传递给csv读取器。对于csv阅读器,您应该更仔细地阅读文档。-它表示-*返回一个reader对象,该对象将在给定的csvfile中的行上迭代。csvfile可以是任何支持迭代器协议的对象,并且每次调用其next()方法时都会返回一个字符串-文件对象和列表对象都是合适的*对不起,我听不懂你说的,请给我看看有代码的例子。谷歌硬盘上必须有csv文件。是的。从驱动器获取csv文件后,可以使用csv解析器和stringio。你以什么方式做不到?我还没有向你展示一切。如何将字符串打包到类似于构造的文件中,以便对其进行解析。我想你可以阅读文档,然后自己解决剩下的问题。