python json解析跳过错误_在Python中解析JSON时出现的各种错误

试图从需要登录的url解析json。包括我所有的代码,因为我不确定错误在哪里。try: import simplejson as json

except ImportError: import json

import urllib2

username = 'user'

password = '1234'

url = "https://www.blah.com/someplace"

# set up the username/password/url request

password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()

password_mgr.add_password(None, "https://www.blah.com", username, password)

handler = urllib2.HTTPBasicAuthHandler(password_mgr)

opener = urllib2.build_opener(handler)

urllib2.install_opener(opener)

request = urllib2.Request(url)

response = opener.open(request)

# option 1

json_object = json.loads(str(response))

#option 2

json_object = json.loads(response)

如果使用选项1(注释掉选项2)运行代码,则会出现以下错误:Traceback (most recent call last):

File "jsontest.py", line 22, in

json_object = json.loads(str(request))

File "/usr/lib/python2.7/dist-packages/simplejson/__init__.py", line 413, in loads

return _default_decoder.decode(s)

File "/usr/lib/python2.7/dist-packages/simplejson/decoder.py", line 402, in decode

obj, end = self.raw_decode(s, idx=_w(s, 0).end())

File "/usr/lib/python2.7/dist-packages/simplejson/decoder.py", line 420, in raw_decode

raise JSONDecodeError("No JSON object could be decoded", s, idx)

simplejson.decoder.JSONDecodeError: No JSON object could be decoded: line 1 column 0 (char 0)

如果我运行选项2:Traceback (most recent call last):

File "jsontest.py", line 23, in

json_object = json.loads(request)

File "/usr/lib/python2.7/dist-packages/simplejson/__init__.py", line 413, in loads

return _default_decoder.decode(s)

File "/usr/lib/python2.7/dist-packages/simplejson/decoder.py", line 402, in decode

obj, end = self.raw_decode(s, idx=_w(s, 0).end())

TypeError: expected string or buffer

据我所知,我的示例JSON是有效的:{"set1":[{"data1":"411","data2":"2033","data3":"1","data4":"43968077","data5":"217","data6":"106828","data7":[]}],

"set2":{"data8":"411","data9":"2033","data10":"43968077","data11":"217223360","data12":"106828"}}

simplejson版本=2.3.2,

Python2.7.3

这一切都很新,所以任何指针都会很有帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值