如何在Python中解析json数据?

时间:2014-06-04 09:17:05

标签: python json

请帮我在python中解析这个json。

{ "IT" : [   
                            { "firstName" : "ajay",  
                              "lastName"  : "stha",
                              "age"       : 24 },

                            { "firstName" : "Michiel",  
                              "lastName"  : "Og",
                              "age"       : 35 }
                          ],                            
          "sales"       : [ 
                            { "firstName" : "Guru", 
                              "lastName"  : "red",
                              "age"       : 27 },

                            { "firstName" : "Jim",   
                              "lastName"  : "Galley",
                              "age"       : 34 }
                          ] 
        } 

如何在Python中解析这个json?请帮帮我

3 个答案:

答案 0 :(得分:5)

使用json

import json
data = json.loads(stringinput)

答案 1 :(得分:1)

import json
jsonResponse = json.loads(data)
jsonDataSales = jsonResponse["sales"]
jsonDataIt = jsonResponse["IT"]
it_first_name_list = []
it_last_name_list = []
it_age_list = []
sales_first_name_list = []
sales_last_name_list = []
sales_age_list = []

for item in jsonDataIt:
    it_first_name_list.append(item.get("firstName"))
    it_last_name_list.append(item.get("lastName"))
    it_age_list.append(item.get("age"))

for item in jsonDataSales:
    sales_first_name_list.append(item.get("firstName"))
    sales_last_name_list.append(item.get("lastName"))
    sales_age_list.append(item.get("age"))

答案 2 :(得分:1)

具有嵌套结构的Python字典与JSON数据非常相似, 虽然Python的变量和表达式支持更丰富的结构选项(任何部分 以下内容可以是Python代码中的任意表达式,例如。

>>> name = dict(first='Bob', last='Smith')
>>> rec = dict(name=name, job=['dev', 'mgr'], age=40.5)
>>> rec
{'job': ['dev', 'mgr'], 'name': {'last': 'Smith', 'first': 'Bob'}, 'age': 40.5}

这里显示的最终字典格式是Python代码中的有效文字,差不多 按原样打印时传递JSON,但json模块使翻译正式 -here将Java对象与JSON序列化字符串表示形式进行转换 在记忆中:

>>> import json
>>> json.dumps(rec)
'{"job": ["dev", "mgr"], "name": {"last": "Smith", "first": "Bob"}, "age": 40.5}'
>>> S = json.dumps(rec)
>>> S
'{"job": ["dev", "mgr"], "name": {"last": "Smith", "first": "Bob"}, "age": 40.5}'
>>> O = json.loads(S)
>>> O
{'job': ['dev', 'mgr'], 'name': {'last': 'Smith', 'first': 'Bob'}, 'age': 40.5}
>>> O == rec
True

将Python对象与JSON数据字符串进行转换同样简单明了 在文件中。在存储到文件之前,您的数据只是Python对象; JSON 当模块从JSON文本表示中加载时,模块会从JSON文本表示中重新创建它们 文件:

>>> json.dump(rec, fp=open('testjson.txt', 'w'), indent=4)
>>> print(open('testjson.txt').read())
{
"job": [
"dev",
"mgr"
],
"name": {
"last": "Smith",
"first": "Bob"
},
"age": 40.5
}
>>> P = json.load(open('testjson.txt'))
>>> P
{'job': ['dev', 'mgr'], 'name': {'last': 'Smith', 'first': 'Bob'}, 'age': 40.5}