EmF*_*eld 2 python google-app-engine xlrd flask
我在appengine中使用xlrd.我用烧瓶
我无法读取输入文件,它继续显示相同的错误消息
代码是
def read_rows(inputfile):
rows = []
wb = xlrd.open_workbook(inputfile)
sh = wb.sheet_by_index(0)
for rownum in range(sh.nrows):
rows.append(sh.row_values(rownum))
return rows
@app.route('/process_input/',methods=['POST','GET'])
def process_input():
inputfile = request.files['file']
rows=read_rows(request.files['file'])
payload = json.dumps(dict(rows=rows))
return payload
Run Code Online (Sandbox Code Playgroud)
我意识到这可能是因为没有上传并将其保存为文件.对此有任何解决方法吗?这也有助于其他许多人.感谢任何帮助,thx
更新:找到我在下面发布的解决方案.对于那些与使用xlrd混淆的人可以参考我发布的开源项目repo.关键是传递文件的内容而不是文件名
最后找到解决方案
这是我如何做到的.我没有保存文件,而是读取文件的内容,让xlrd读取它
def read_rows(inputfile):
rows = []
wb = xlrd.open_workbook(file_contents=inputfile.read())
sh = wb.sheet_by_index(0)
for rownum in range(sh.nrows):
rows.append(sh.row_values(rownum))
return rows
Run Code Online (Sandbox Code Playgroud)
工作得很好,并将excel文件转换为JSON格式.如果要输出json,只需使用json.dumps().
完整的代码示例可以在https://github.com/cjhendrix/HXLator/blob/master/gae/main.py找到,它具有xlrd的完整实现以及如何使用数据.
Thx指针
| 归档时间: |
|
| 查看次数: |
2733 次 |
| 最近记录: |