龙卷风将GET和POST参数映射到列表.如何禁用此"功能"?

Abe*_*Abe 15 python json tornado cyclone

tornado*web框架中的HTTPRequest类有助于将GET和POST参数映射到列表.我理解为什么 - 如果多次使用给定的参数名称.但是对于一些RequestHandler来说,这是一种痛苦.例如,如果我想传递一个json对象并在服务器上按原样解析它.

什么是最直接的方法来禁用map-to-list行为,以便我可以将未经改动的json发送到龙卷风/旋风服务器?

*Cyclone,实际上,万一这里有实现差异.

kob*_*las 37

而不是self.request.arguments直接访问您应该使用访问器功能:

self.get_argument("ID", default=None, strip=False)
Run Code Online (Sandbox Code Playgroud)

这将返回单个项目.

如果要将参数转换为JSON对象,则可以非常轻松地执行此操作:

json.dumps({ k: self.get_argument(k) for k in self.request.arguments })
Run Code Online (Sandbox Code Playgroud)

  • json.dumps({k:self.get_argument(k)for self in self.request.arguments}) - 它并不是那么低效. (5认同)