我有一个接受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] = ???
}
...
答案 0 :(得分:1)
以JSON格式发送数据。然后,您可以直接反序列化为dict,无需任何处理。
$.post( "/api", { verb: 'create', my_id: my_id, properties: JSON.stringify(properties) })
...
properties = json.loads(self.request.get('properties', {}))