从POSTed数组访问非顺序列表项

时间:2016-02-29 12:20:19

标签: python python-2.7 webapp2

我有一个接受POSTed AJAX数组的Python WebApp。我可以正常访问数组:

i = 0
while i <= 50:
  current_key = 'properties['+str(i)+']'
  if self.request.get(current_key) != "":
    self.response.out.write(self.request.get(current_key))
  i = i + 1

至关重要的是,提供的属性是a)未知数量,b)并不总是顺序。

目前我用这个收集它们:

var properties = {1:1000, 2:2000, 4:3000};
$.post( "/api", { verb: 'create', my_id: my_id, properties: properties })

但是我在做这件事的时候感到很恶心(而且大多数时候我的房产都不到50个,而且有一天可能会有更多的......我不确定是否会有更多的,更少的Pythonic解决方案)。

有关我在这里缺少什么的提示吗?如果我试图直接访问'属性'(计划是iteritems over it或者什么)它没有设置,这让我觉得我只是在看一组名为'properties [1]'和'properties [3]的断开连接的字符串]'根本不是一个数组/列表/字典。

如果这是一个更整洁的解决方案,我确实可以访问另一端的js - 此时它就像是:

trait User[T] {
  def save(item:Option[T]): Option[T]
}
class UserAdmin extends User[UserA] {
  def save(item: Option[UserA]): Option[UserA] = ???
}
...

1 个答案:

答案 0 :(得分:1)

以JSON格式发送数据。然后,您可以直接反序列化为dict,无需任何处理。

$.post( "/api", { verb: 'create', my_id: my_id, properties: JSON.stringify(properties) })

...

properties = json.loads(self.request.get('properties', {}))