【问题标题】:appengine: parse a csv data in uploaded fileappengine:解析上传文件中的 csv 数据
【发布时间】:2011-05-23 17:57:44
【问题描述】:

是否有任何模块或包可以帮助从 appengine 中上传的 csv 文件解析 csv 内容。尝试在 python 中使用 csv 包。但它只能解析文件系统中的文件,但不能解析数据.. http://docs.python.org/library/csv.html

【问题讨论】:

    标签: python google-app-engine csv


    【解决方案1】:

    但它只能解析文件中的文件 系统但无法数据

    不,csv.reader 接受任何支持逐行迭代的对象。假设 cgi.FieldStorage 支持它,并且假设你已经发布了一个名为“file”的文件,你应该可以这样做:

    import csv
    for row in csv.reader(self.request.POST['file']):
      # process row
    

    【讨论】:

    • 或者,将 blob 拉出 blogstore 并将其传递给 csv.reader()。这可能是您希望在后端执行的操作,以避免处理超过 30 秒的请求限制。
    • codeimport csv codefor row in csv.DictReader(open('contacts.csv', 'rU')) code self.response.out.write(row) this测试时工作正常codefor row in csv.DictReader(self.request.POST.get('CSV').file.read()) codeself.response.out.write(row) 当联系人.csv 相同的文件是通过 webbrowser 提供的,它无法解析它的内容
    【解决方案2】:

    App Engine Mapper 有一个 blobstore 输入格式:http://code.google.com/p/appengine-mapreduce/

    它将读取 CSV 中的每一行并将其发送到您的映射器以供读取/导入。不过要小心,因为如果 CSV 中有转义的新行,它会中断。

    下面是 Java 实现的示例:http://ikaisays.com/2010/08/11/using-the-app-engine-mapper-for-bulk-data-import/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-02
      • 2016-07-04
      • 2023-01-26
      • 1970-01-01
      相关资源
      最近更新 更多