怎么把类似{'a':[{'b':'1','d':'3',},{'b':'2','d'='a'},{'b':'3','d':'4'}],'c':'1'}这个遍历出来?

2012-01-29 22:35:25 +08:00
 likai
最后结果要是能以
r.a.b
r.a.d
r.c取里面的值..

弄个小软件来学PY.结果卡在这里了.求解..

.NND.py2.6.实在是弄不出了.
4323 次点击
所在节点    Python
8 条回复
Weakdancer
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']
Weakdancer
2012-01-29 22:44:06 +08:00
print r['a'][0]['b']
print r['a'][0]['d']

刚才写错了,不好意思
gonghao
2012-01-29 22:46:50 +08:00
不懂为啥要这样,既然 a 里面是个数组,那么 r.a.b 到底是 1 还是 2 或者 3 呢?

还有那个 'd'='a' 应该是 'd':'a' 吧?
clowwindy
2012-01-29 22:59:36 +08:00
likai
2012-01-29 23:15:54 +08:00
不好意思.可能我说得不太明白...我在用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)
reus
2012-01-30 05:04:17 +08:00
是在本地调试吗?500的话就看看server的错误信息呗
你确定rs是dict不是str吗?
ccdjh
2012-01-30 07:38:09 +08:00
rs 的问题。我直接在sae试了一下。你看一下

https://gist.github.com/1701355
likai
2012-01-30 08:07:57 +08:00
谢谢各位帮忙,刚仔细看了下返回数据才发现最后一个键值缺少"",

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/26213

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX