我有这个json文件
{
"children": [{
"objName": "Sprite1",
"scripts": [[69,
57,
[["whenGreenFlag"],
["broadcast:", "Pin D On"],
["wait:elapsed:from:", 3],
["broadcast:", "Pin D Off"],
["wait:elapsed:from:", 1]]]],
"sounds": [{
"soundName": "meow",
"soundID": 0,
"md5": "83c36d806dc92327b9e7049a565c6bff.wav",
"sampleCount": 18688,
"rate": 22050,
"format": ""
}]
}]
}
我尝试解析GreenFlag信息,但是当我运行此
时> import ast import json from pprint import pprint
>
>
>
>
>
>
> codeInput = [] codeOutput = []
>
> with open("project.json") as projectFile:
> codeInput =json.load(projectFile)
>
> print type(codeInput)
>
> #pprint(codeInput)
> #print"----"
>
> #print codeInput["children"]
>
> scripts = codeInput["children"][0]["scripts"] print type(scripts) for
> items in scripts:
> print "items",items
>
> print scripts[2]
我没有得到列表我得到了这个但看起来应该是这样 我的清单
<type 'dict'>
<type 'list'>
items [69, 57, [[u'whenGreenFlag'], [u'broadcast:', u'Pin D On'], [u'wait:elapsed:from:', 3], [u'broadcast:', u'Pin D Off'], [u'wait:elapsed:from:', 1]]]
Traceback (most recent call last):
File "C:/Dropbox/Private/Scratch2Crumble/projectparser.py", line 46, in <module>
print scripts[2]
IndexError: list index out of range
我做错了什么?
我刚刚添加了这个额外的文字,以便尝试发布我的任务
答案 0 :(得分:2)
与字典中的键"scripts"
关联的值是包含一个元素的列表。
"scripts": [[69,
57,
[["whenGreenFlag"],
["broadcast:", "Pin D On"],
["wait:elapsed:from:", 3],
["broadcast:", "Pin D Off"],
["wait:elapsed:from:", 1]]]],
如果"scripts":
之后有两个开括号,则表示您有一个包含一个元素的列表,该元素是另一个包含69, 57
等的列表。
答案 1 :(得分:2)
这是因为与scripts
相关联的值是包含单个元素的列表,该列表是一个列表。
输出格式更好时,您可以看到它:
[
[
69,
57,
[
["whenGreenFlag"],
["broadcast:", "Pin D On"],
["wait:elapsed:from:", 3],
["broadcast:", "Pin D Off"],
["wait:elapsed:from:", 1]
]
]
]
因此,您必须致电scripts[0][2]
以获得您想要的内容。