检查了类似问题的其他答案,但找不到解决此特定问题的任何问题。我无法弄清楚为什么我会收到错误,因为我不相信我错过了任何价值观。另外,我觉得奇怪的是它说第1行第1列(字符0) - 你们中的任何一个人都有什么想法吗?
import json
import urllib.request
user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7"
url = "http://api.usatoday.com/open/articles/topnews?encoding=json&api_key=98jv5a93qs"
headers={"User-Agent":user_agent,}
request = urllib.request.Request(url, None, headers)
parsed_json = json.loads(str(request))
for i in range(6):
title = parsed_json['stories'][i]['title']
link = parsed_json['stories'][i]['link']
print(title)
print(link)
print("-----------------------------------")
答案 0 :(得分:2)
您正在尝试解析响应JSON。但你没有发送请求的事件。
你应该发送你的Request
,然后解析响应JSON:
import json
import urllib.request
user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7"
url = "http://api.usatoday.com/open/articles/topnews?encoding=json&api_key=98jv5a93qs"
headers={"User-Agent":user_agent,}
request = urllib.request.Request(url, None, headers)
res = urllib.request.urlopen(request)
parsed_json = json.loads(res.readall())
for i in range(6):
title = parsed_json['stories'][i]['title']
link = parsed_json['stories'][i]['link']
print(title)
print(link)
print("-----------------------------------")
答案 1 :(得分:1)
我在both the docs(or v. 2)和上面的网址中看到的问题是,您正在尝试解析不是JSON的JSON。我建议尝试将你的调用包装到json.loads
...除了块并处理坏的JSON。无论如何,这通常是一种很好的做法。
为了好的衡量,我查了source code for the json
module。看起来Py2k的所有错误都指向了值错误,以为我找不到你提到的具体错误。
根据我对the JSON module的阅读,如果您使用try...except
并打印错误模块的属性,您也可以获得更多信息。