Python中将复杂json格式的数据提取value值的方法

6342

Python的json有两种方法:

edcode:decode:

当转化为字典类型时,取出数据时需要用到for循环进行遍历

下面是三个例子:

1、读取txt文件,其实就是string类型数据,获取值

txt文件内容如下:

2、 字典格式的数据,获取值

3、非正规json格式数据,取出值items = { "iot": "Ammeter", "ite": { "Power": { "value": "on", "time": 1510799670074 } }

或者是这样的形式:

items = {

"iot": "Ammeter",

"ite": {

"Power": {

"value": "on",

"time": 1510799670074

}}}

一、loads使用:

1、首先使用json加载字符串,然后取出value值import json

items = '''{ "iot": "Ammeter", "ite": { "Power": [{ "value": "on", "time": 1510799670074 },{ "value": "off", "time": 1115464362163 }]} }'''

items = json.loads(items)

items1 = items["ite"]

items2 = items["ite"]['Power']

print(items1)

print(items2)

for item in items1:

print(item)

print(items1[item])

for item in items2:

print(item['value'])

输出:

{'Power': [{'value': 'on', 'time': 1510799670074}, {'value': 'off', 'time': 1115464362163}]}

[{'value': 'on', 'time': 1510799670074}, {'value': 'off', 'time': 1115464362163}]

Power

[{'value': 'on', 'time': 1510799670074}, {'value': 'off', 'time': 1115464362163}]

on

off

2、下列的标准json格式,取出count的值

page = html_str['data']['page']['count']

print(page)

输出:

460313

二、dumps使用

import json

items = '''{"iot":"Ammeter", "ite": { "Power": { "value": "on", "time": 1510799670074 } } }'''

items = json.dumps(items,ensure_ascii=True,indent=10)

print(items)

输出结果:

{

"iot": "Ammeter",

"ite": {

"Power": {

"value": "on",

"time": 1510799670074

}

}

}