如何读取或解析远程csv(在Google Drive上)GAE(Python)
我在谷歌硬盘上有csv文件,它们是公共的,我必须用Python阅读GAE中的csv文件 我的解决办法是如何读取或解析远程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
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。你以什么方式做不到?我还没有向你展示一切。如何将字符串打包到类似于构造的文件中,以便对其进行解析。我想你可以阅读文档,然后自己解决剩下的问题。