使用简单 JSON 解析器解码数据

有人从一个 URL 中获取了一些数据,经过在线查询发现数据是 JSON 格式,但使用 simplejson.loads(data) 解析时引发异常。这是第一次处理 JSON 数据,需要建议来解决编解码数据的问题。

2、解决方案:
首先要确认网站提供的数据确实是 JSON 格式。在尝试使用简单 JSON 解析器解码数据之前,需要先确保数据格式正确。

result = simplejson.loads(data, encoding="utf-8")

如果数据格式不正确,则会导致 simplejson.decoder.JSONDecoderError 异常。

data = "{identifier:'ID', label:'As at Wed 4 Aug 2010 05:05 PM',items:[{ID:0,N:'2ndChance',NC:'528',R:'NONE',I:'NONE',M:'-',LT:0.335,C:0.015,VL:51.000,BV:20.000,B:0.330,S:0.345,SV:20.000,O:0.335,H:0.335,L:0.335,V:17085.000,SC:'4',PV:0.320,P:4.6875,P_:'X',V_:''},{ID:1,N:'8Telecom',NC:'E25',R:'NONE',I:'NONE',M:'-',LT:0.190,C:0.000,VL:965.000,BV:1305.000,B:0.185,S:0.190,SV:641.000,O:0.185,H:0.190,L:0.185,V:179525.000,SC:'2',PV:0.190,P:0.0,P_:'X',V_:''},{ID:2,N:'A-Sonic',NC:'A53',R:'NONE',I:'NONE',M:'-',LT:0.090,C:0.005,VL:1278.000,BV:17.000,B:0.090,S:0.095,SV:346.000,O:0.090,H:0.090,L:0.090,V:115020.000,SC:'A',PV:0.085,P:5.882352734375,P_:'X',V_:''},{ID:3,N:'AA Grp',NC:'5GZ',R:'NONE',I:'NONE',M:'t',LT:0.000,C:0.000,VL:0.000,BV:100.000,B:0.050,S:0.060,SV:50.000,O:0.000,H:0.000,L:0.000,V:0.000,SC:'2',PV:0.050,P:0.0,P_:'X',V_:''}]}"

使用 simplejson.loads() 解析后,就可以得到一个 Python 字典,其中包含了数据的所有信息。

{
    "identifier": "ID",
    "label": "As at Wed 4 Aug 2010 05:05 PM",
    "items": [
        {
            "ID": 0,
            "N": "2ndChance",
            "NC": "528",
            "R": "NONE",
            "I": "NONE",
            "M": "-",
            "LT": 0.335,
            "C": 0.015,
            "VL": 51.000,
            "BV": 20.000,
            "B": 0.330,
            "S": 0.345,
            "SV": 20.000,
            "O": 0.335,
            "H": 0.335,
            "L": 0.335,
            "V": 17085.000,
            "SC": "4",
            "PV": 0.320,
            "P": 4.6875,
            "P_": "X",
            "V_": ""
        },
        {
            "ID": 1,
            "N": "8Telecom",
            "NC": "E25",
            "R": "NONE",
            "I": "NONE",
            "M": "-",
            "LT": 0.190,
            "C": 0.000,
            "VL": 965.000,
            "BV": 1305.000,
            "B": 0.185,
            "S": 0.190,
            "SV": 641.000,
            "O": 0.185,
            "H": 0.190,
            "L": 0.185,
            "V": 179525.000,
            "SC": "2",
            "PV": 0.190,
            "P": 0.0,
            "P_": "X",
            "V_": ""
        },
        {
            "ID": 2,
            "N": "A-Sonic",
            "NC": "A53",
            "R": "NONE",
            "I": "NONE",
            "M": "-",
            "LT": 0.090,
            "C": 0.005,
            "VL": 1278.000,
            "BV": 17.000,
            "B": 0.090,
            "S": 0.095,
            "SV": 346.000,
            "O": 0.090,
            "H": 0.090,
            "L": 0.090,
            "V": 115020.000,
            "SC": "A",
            "PV": 0.085,
            "P": 5.882352734375,
            "P_": "X",
            "V_": ""
        },
        {
            "ID": 3,
            "N": "AA Grp",
            "NC": "5GZ",
            "R": "NONE",
            "I": "NONE",
            "M": "t",
            "LT": 0.000,
            "C": 0.000,
            "VL": 0.000,
            "BV": 100.000,
            "B": 0.050,
            "S": 0.060,
            "SV": 50.000,
            "O": 0.000,
            "H": 0.000,
            "L": 0.000,
            "V": 0.000,
            "SC": "2",
            "PV": 0.050,
            "P": 0.0,
            "P_": "X",
            "V_": ""
        }
    ]
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值