WebToRNADCSV中的对象

2024-05-16 00:52:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我通过上传csv生成了以下webrequest对象体:

------WebKitFormBoundaryZfGb9EY1D9p7BTV9
Content-Disposition: form-data; name="file"; filename="vb_bpm.csv"
Content-Type: text/csv

10/05/2015,00:08:17,8,3960,2,52503,19824
10/05/2015,00:19:35,8,3960,2,52542,19824
10/05/2015,02:21:21,8,3960,2,55366,19824
10/05/2015,02:32:11,8,3960,2,55942,19824
10/05/2015,02:43:13,8,3960,2,56139,19824
10/05/2015,02:54:09,8,3960,2,56750,19824
10/05/2015,03:05:08,8,3960,2,57007,19824
10/05/2015,03:16:10,8,3960,2,57040,19824
10/05/2015,03:27:00,8,3960,2,57633,19824
10/05/2015,03:37:54,8,3960,2,58306,19824
10/05/2015,03:48:47,8,3960,2,58984,19824

------WebKitFormBoundaryZfGb9EY1D9p7BTV9--

我想保存到一个新的csv文件。 下面给出了上述输出:

^{pr2}$

任何帮助都将不胜感激。在


Tags: csv对象textnameformdatatypecontent
2条回答

我建议对所有上传的数据进行严格的验证,以防止代码注入和数据质量下降。在

我的解决方案是通过regexp运行上载的行:

import re

lines = str(request.body).split()
p = "\d{1,2}\/\d{1,2}\/\d{2,4},\d{1,2}\:\d{1,2}\:\d{1,2},\d+,\d+,\d+,\d+,\d+"
filtered_body = "\n".join(filter(lambda l: re.match(p, l), lines))

print "Original:\n%s\n" % request.body
print "Filtered:\n%s\n" % filtered_body

数据的结果输出:

^{pr2}$

将行保存到文件中很简单。在

什么是“webrequest”?Tornado的请求对象有一个body属性,但没有body方法。假设您的意思是Tornado请求,并且在request.body上使用parens是一个错误,那么您可以使用请求的files属性。body始终是原始请求体,在本例中,它包含一个multipart/form-data包装器。Tornado识别multipart/form-data内容类型(用于非流式请求)并将其解析为files对象。在这种情况下,您可以在request.files["file"][0].body下找到您的csv文件。在

相关问题 更多 >