Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python无法解析JSON数据_Python_Json_Python Requests - Fatal编程技术网

python无法解析JSON数据

python无法解析JSON数据,python,json,python-requests,Python,Json,Python Requests,我无法使用python解析JSON数据 网页url正在返回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) receiv

我无法使用python解析JSON数据

网页url正在返回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))
当我打印这篇文章时,我得到了大文本,当我使用它进行验证时,显示了有效的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))
当我使用它验证大型打印文本时,它显示无效JSON


即使我不打印并直接使用数据。它工作正常。因此,我确信即使在内部,它也没有正确加载


python是否无法正确地将文本解析为JSON?

简而言之,
JSON.loads
将JSON(东西、对象集、数组等)转换为python对象—在本例中,是JSON字典。当你打印它时,它将作为一个字母打印,因此用单引号打印

您的代码可以有效地扩展:

some_dictionary = json.loads(a_string_which_is_a_json_object)
print(some_dictionary)

为了确保打印json是安全的,您需要使用
json.dumps

重新编码。简言之,
json.loads
将json(对象、对象集、数组等)转换为Python对象,在本例中为json字典。当你打印它时,它将作为一个字母打印,因此用单引号打印

您的代码可以有效地扩展:

some_dictionary = json.loads(a_string_which_is_a_json_object)
print(some_dictionary)

为了确保打印json是安全的,当您使用python的
json.load(text)
时,需要使用
json.dumps
重新编码。它返回一个python字典。当你打印出字典时,它不是json格式的


如果您想要一个json输出,您应该使用
json.dumps(json\u对象)

当您使用python的
json.loads(text)
时,它会返回一个python字典。当你打印出字典时,它不是json格式的


如果您想要json输出,您应该使用
json.dumps(json_object)

对json进行解码并打印Python字典的文本表示,这不一定与原始json编码相同。您从第二个脚本获得任何输出的事实证明Python对json进行了很好的解析;您只是没有将JSON输出到验证器。即使我没有打印并直接使用数据。它工作正常。因此,我确信即使在内部,它也没有正确加载。您解码了JSON并打印了Python字典的文本表示形式,这不一定与原始JSON编码相同。您从第二个脚本中获得的任何输出都证明Python解析JSON很好;您只是没有将JSON输出到验证器。即使我没有打印并直接使用数据。它工作正常。因此,我确信即使在内部,它也没有正确加载。