从Kwargs上传Python / Cherrypy处理文件。实例类型不可索引。试图转储FieldStorage数据

时间:2012-04-05 00:11:04

标签: python cherrypy kwargs

我正在运行cherrypy和一个接收文件的模块,我想将数据转储到磁盘。 而不是使用cherrypy揭示并从我的主要cherrypy应用程序获取文件,我想自己处理它。我已经能够到达这个

print kwargs['image']

并将其转储到控制台

FieldStorage('image', 'Diagram1.jpeg', *raw image data*)

如何访问那里的三个变量并在我的程序中使用它们?

如果我尝试将它们编入索引,则表示实例类型不可索引。

我能够从print kwargs['image'].__dict__

中解决这个问题
{'fp': <cherrypy.wsgiserver.SizeCheckWrapper object at 0x23ba510>,
'disposition_options': {'name': 'image', 'filename': 'Diagram1.jpeg'},
'innerboundary': '',
'name': 'image',
'_FieldStorage__file': None,
'list': None,
'filename': 'Diagram1.jpeg',
'keep_blank_values': 1,
'headers': <rfc822.Message instance at 0x23c1830>,
'length': -1,
'done': 1,
'disposition': 'form-data',
'qs_on_post': None,
'strict_parsing': 0,
'file': <open file '<fdopen>',
mode 'w+b' at 0x23a1270>,
'outerboundary': '----WebKitFormBoundary5KJ5TEJBxEKAvcW1',
'type_options': {},
'type': 'image/jpeg'}

但是,因为它显示TypeError: not indexable

,所以它们似乎都无法访问

1 个答案:

答案 0 :(得分:0)

您的kwargs['image']FieldStorage个对象。 __dict__方法是一个包装器,因此您可以执行dict(kwargs['image'])