如何使用python访问json中的元素?

时间:2017-07-11 08:31:06

标签: python json

我需要帮助我如何使用python从JSON结构访问元素。

假设我有一个像这样的JSON

{
'result':
  [
    {
     'aa':1, 
     'bb':2
    },
    {
     'cc':3, 
     'dd':4
    }
  ]
 }

在python中,如何准确获取aadd的数据? 我试过

str1 = {'result':[{'aa':1, 'bb':2},{'cc':3, 'dd':4}]}
str1new = str1['result']['aa]

但它给了我错误

list indices must be integers, not str

我该如何解决这个问题?有没有其他方法使用python从JSON获取数据?感谢您的帮助。我真的很感激。

7 个答案:

答案 0 :(得分:3)

尝试这个,如果你有更多,下一个使用索引,如1或2,或者你可以循环json中有多个索引。

str1new = str1['result'][0]['aa']

答案 1 :(得分:2)

在python中如果你写:

str1 = {'result':[{'aa':1, 'bb':2},{'cc':3, 'dd':4}]}

它是字典而不是json。

如果您的输入有json字符串,则需要使用

import json

json_str = """{
"result":
  [
    {
     "aa":1, 
     "bb":2
    },
    {
     "cc":3, 
     "dd":4
    }
  ]
 }"""
str1 = json.loads(json_str)

然后你可以使用类似于python的字典。

如其他人所回答,您可以使用

aa = str1['result'][0]['aa']

答案 2 :(得分:1)

str1new = str1['result'][0]['aa]

答案 3 :(得分:1)

由于str1['result']是一个列表,这就是您收到list indices must be integers, not str错误的原因。

aa = str1['result'][0]['aa']
dd = str1['result'][1]['dd']

答案 4 :(得分:1)

result是一个列表,因此您需要在访问aa之前引用有效索引:

str1 = {'result':[{'aa':1, 'bb':2},{'cc':3, 'dd':4}]}
str1new = str1['result'][0]['aa']

答案 5 :(得分:1)

在Python中,除非你使用包(然后指定它)," JSON"结构实际上就是决定。

{
'result':
  [
    {
     'aa':1, 
     'bb':2
    },
    {
     'cc':3, 
     'dd':4
    }
  ]
 }

在这里,你的dict只有一个键:result。其值包含在列表中。此列表是一个dicts列表。因此,使用级联索引访问来获取aa值:

str1['result'][0]['aa']

答案 6 :(得分:0)

对于Python3,使用Json库,您可以轻松解析Json。

# import statement
import json

# using example sting from above
jsonString = '{ "result" : [{ "aa": 1,"bb": 2 }, { "cc": 3, "dd": 4 }]}'

# parse json string
parsedJsonObject = json.loads(jsonString)

# access a specific property in the json object 
resultObject = parsedJsonObject['result']