|  |      1Weakdancer      2012-01-29 22:42:39 +08:00 r={'a':[{'b':'1','d':'3',},{'b':'2','d':'a'},{'b':'3','d':'4'}],'c':'1'} print r['a']['b'] print r['a']['d'] print r['c'] | 
|  |      2Weakdancer      2012-01-29 22:44:06 +08:00 print r['a'][0]['b'] print r['a'][0]['d'] 刚才写错了,不好意思 | 
|  |      3gonghao      2012-01-29 22:46:50 +08:00 不懂为啥要这样,既然 a 里面是个数组,那么 r.a.b 到底是 1 还是 2 或者 3 呢? 还有那个 'd'='a' 应该是 'd':'a' 吧? | 
|      4clowwindy      2012-01-29 22:59:36 +08:00 | 
|      5likai OP 不好意思.可能我说得不太明白...我在用tornado在sae上作一个小东西...数据是用JSON取得的. 结构为 r = {'a':[{'b':'1','c':'1','d':'1'},{'b':'2','c':'2','d':'2'},{'b':'3','c':'3','d':'3'}],'f':'123456'} 其中a,b,c,d,f是固定键名.只是值不同. a值list中是一个个数据结构相同的dict吧?为什么是数组? 我如果print r.取得的结果会全部出来. 如果我 print r['f']就不行了.直接报500了. 以下是我 的实现代码... import os import tornado.wsgi import sae from mod import * class MainHandler(tornado.web.RequestHandler): def get(self): rs = getData(param) self.write(rs)#这样数据能全部打出来 self.write(rs['f'])#这样的话就500错误 app = tornado.wsgi.WSGIApplication([ (r"/", MainHandler), ]) application = sae.create_wsgi_app(app) | 
|  |      6reus      2012-01-30 05:04:17 +08:00 是在本地调试吗?500的话就看看server的错误信息呗 你确定rs是dict不是str吗? | 
|  |      7ccdjh      2012-01-30 07:38:09 +08:00 | 
|      8likai OP 谢谢各位帮忙,刚仔细看了下返回数据才发现最后一个键值缺少"", |