如何使用python解析json元素?
我用opener.open方法得到了json数据。现在我想参考它的elmentS。我尝试了下面的代码,但我得到错误!此外,我想仅为链接2获取token =的值。任何人都可以帮助我解决这个错误并获得令牌的价值吗?提前致谢。如何使用python解析json元素?
代码:
resp2 = opener.open('http://somewebsite.com/test/id',post_data)
print resp2.read()
Response = resp2.read();
j_obj = json.load(Response)
print j_obj['link2']
错误:
ERROR: EXCEPTION Thrown (PythonToCppException) :
-->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <type 'exceptions.AttributeError'>
Error Contents: 'str' object has no attribute 'read'
j_obj = json.load(Response)
line 286, in load
return loads(fp.read(),
AttributeError: 'str' object has no attribute 'read'
-->End of Python script error report<--
JSON数据:
{
"id": 1,
"name": "Test World",
"link1": "rtmp:\/\/me.someWebsite.com:1234\/static\/testWorld1?token=123456789abcdefghijklmnopqr&e=987654321&u=99999",
"link2": "http:\/\/me.someWebsite.com:1234\/testWorld1\/index.m3u8?token=123456789abcdefghijklmnopqr&e=987654321&u=99999&channel=testWorld1",
"image": "http:\/\/me.someWebsite.com\/img\/1\/2\/3\/4\/56.png",
"net": "rtmp:\/\/me.someWebSite.com:1234\/static",
"url": "testWorld1?token=123456789abcdefghijklmnopqr&e=987654321&u=99999",
"favorite": false,
"date": "2014-05-1"
}
执行以下操作 - 注意resp2
已经是一个string
!
resp2 = opener.open('http://somewebsite.com/test/id',post_data)
print resp2 # You can verify you are receiving JSON data here.
j_obj = json.loads(resp2)
print j_obj['link2']
感谢您的回复。我现在尝试它现在我得到这个错误:错误类型:
打印您收到的字符串。发布它包含的内容。 –
非常感谢我删除了Response = resp2.read();并使用resp2现在我得到了link2的值。我怎么能得到该链接2上的标记的值?(标记= 123456789abcdefghijklmnopqr) – user1788736
你可以尝试使用不同的方法,
import urllib2
post_data = ...
fp = urllib2.urlopen('http://somewebsite.com/test/id', post_data)
resp = fp.read()
print(resp)
'json.load()'是文件类型的对象,'json.loads()'是用于字符串。 – AChampion