python解析json:json模块

python中解析json字符串非常简单,直接用内置的json模块就可以,不需要安装额外的模块。


一、json字符串转为python值

json字符串:

{"userAccount":"54321","date":"2016-12-06 10:26:17","ClickTime": 1480991177,"jsonInfo":{"lon":121.5612,"lat":31.1832,"isGps":1,"netType":"WIFI","addr":"浦东新区长江南路1099弄56号"}}

格式化一下:

{
    "userAccount": "54321", 
    "date": "2016-12-06 10:26:17", 
    "ClickTime": 1480991177, 
    "jsonInfo": {
        "lon": 121.5612, 
        "lat": 31.1832, 
        "isGps": 1, 
        "netType": "WIFI", 
        "addr": "浦东新区长江南路1099弄56号"
    }
}


# -*- coding:gbk -*-

import json

sJOSN = '{"userAccount":"54321","date":"2016-12-06 10:26:17","ClickTime": 1480991177,"jsonInfo":{"lon":121.5612,"lat":31.1832,"isGps":1,"netType":"WIFI","addr":"浦东新区长江南路1099弄56号"}}'

sValue = json.loads(sJOSN)

print(sValue)

输出:

============= RESTART: C:\Users\Administrator\Desktop\Python.py =============
{'jsonInfo': {'lat': 31.1832, 'isGps': 1, 'netType': 'WIFI', 'addr': '浦东新区长江南路1099弄56号', 'lon': 121.5612}, 'ClickTime': 1480991177, 'userAccount': '54321', 'date': '2016-12-06 10:26:17'}
>>> 

对比一下原始字符串和输出的,发现前后顺序变了,因为在转化为python的字典数据的过程中,顺序会变化。

另外,json中的双引号都改成了单引号。


二、python值转为json字符串

# -*- coding:gbk -*-

import json

sDict={'jsonInfo': {'netType': 'WIFI', 'lat': 31.1832, 'addr': '浦东新区长江南路1099弄56号', 'isGps': 1, 'lon': 121.5612}, 'userAccount': '54321', 'ClickTime': 1480991177, 'date': '2016-12-06 10:26:17'}

sValue = json.dumps(sDict)

print(sValue)

输出:


又从字典数据变为了json字符串。


三、解析json中的数据

# -*- coding:gbk -*-

import json

sJOSN = '{"userAccount":"54321","date":"2016-12-06 10:26:17","ClickTime": 1480991177,"jsonInfo":{"lon":121.5612,"lat":31.1832,"isGps":1,"netType":"WIFI","addr":"浦东新区长江南路1099弄56号"}}'

sValue = json.loads(sJOSN)


for k in sValue.keys():
    if str(type(sValue[k]))!="<class 'dict'>":
        print(k+':'+ str(sValue[k]))
    else:
        print(str(k)+':')
        for k1 in sValue[k].keys():
            print(' '*3 + k1 +':'+str(sValue[k][k1]))

输出:

========= RESTART: C:\Users\Administrator\Desktop\Python json转为字典.py =========
userAccount:54321
date:2016-12-06 10:26:17
jsonInfo:
   netType:WIFI
   addr:浦东新区长江南路1099弄56号
   lon:121.5612
   lat:31.1832
   isGps:1
ClickTime:1480991177


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值