我无法使用python解析JSON数据。
网页网址正在返回JSON数据
import requests
import json
BASE_URL = "https://www.codechef.com/api/ratings/all"
data = {'page': page, 'sortBy':'global_rank', 'order':'asc', 'itemsPerPage':'40' }
r = requests.get(BASE_URL, data = data)
receivedData = (r.text)
print ((receivedData))
当我打印出来时,我收到大文字,当我使用https://jsonlint.com/验证时,它显示有效JSON
后来我用了
import requests
import json
BASE_URL = "https://www.codechef.com/api/ratings/all"
data = {'page': page, 'sortBy':'global_rank', 'order':'asc', 'itemsPerPage':'40' }
r = requests.get(BASE_URL, data = data)
receivedData = (r.text)
print (json.loads(receivedData))
当我使用https://jsonlint.com/验证大型打印文本时,它显示 INVALID JSON
即使我不打印并直接使用数据。它运作正常。所以我确信即使在内部它也没有正确加载。
是否python无法正确解析文本到JSON?
答案 0 :(得分:1)
简而言之,json.loads
从Json(thing,objcet,array,whatever)转换为Python对象 - 在本例中为Json Dictionary。打印时,它将作为itterative打印,因此使用单引号打印..
有效地扩展您的代码:
some_dictionary = json.loads(a_string_which_is_a_json_object)
print(some_dictionary)
要确保您正在打印json-safe,您需要使用json.dumps
重新编码
答案 1 :(得分:1)
当你使用python的json.loads(text)
时,它返回一个python字典。当你打印出那个字典时,它不是json格式。
如果你想要一个json输出,你应该使用json.dumps(json_object)
。