尝试使用Python从URL获取json数据

尝试使用Python从URL获取json数据,python,json,Python,Json,我正在学习从链接获取json数据,并在以后使用这些数据。但我得到了一个错误:“RuntimeError:调用Python对象时超过了最大递归深度” 这是我的密码: import json import requests from bs4 import BeautifulSoup url = "http://example.com/category/page=2&YII_CSRF_TOKEN=31eb0a5d28f4dde909d3233b5a0c23bd03348f69&mor

我正在学习从链接获取json数据,并在以后使用这些数据。但我得到了一个错误:“RuntimeError:调用Python对象时超过了最大递归深度”

这是我的密码:

import json
import requests
from bs4 import BeautifulSoup

url = "http://example.com/category/page=2&YII_CSRF_TOKEN=31eb0a5d28f4dde909d3233b5a0c23bd03348f69&more_products=true"
header = {'x-requested-with': 'XMLHttpRequest'}

mainPage = requests.get(url, headers = header)
xTree = BeautifulSoup(mainPage.content, "lxml")

newDictionary=json.loads(str(xTree))

print (newDictionary)
编辑:好的,我通过使用这个微小的更改获得了响应数据,下面是新代码:

import json
import requests
from bs4 import BeautifulSoup

url = "http://example.com/category/page=2&YII_CSRF_TOKEN=31eb0a5d28f4dde909d3233b5a0c23bd03348f69&more_products=true"
header = {'x-requested-with': 'XMLHttpRequest'}

mainPage = requests.get(url, headers = header

print (mainPage.json())

不要使用Beauty soup来处理json http响应。使用类似于请求的内容:

url = "https://www.daraz.pk/womens-kurtas-shalwar-kameez/?pathInfo=womens-kurtas-shalwar-kameez&page=2&YII_CSRF_TOKEN=31eb0a5d28f4dde909d3233b5a0c23bd03348f69&more_products=true"
header = {'x-requested-with': 'XMLHttpRequest'}
t = requests.get(url, headers=True)
newDictionary=json.loads(t)
print (newDictionary)
漂亮的soup对象不能用json.loads()那样解析

如果其中一些json键上有HTML数据,那么可以使用beautiful soup单独解析这些字符串值。如果json上有一个名为content的键,包含html,则可以像这样解析它:

BeautifulSoup(newDictionary.content, "lxml")

如果您有零碎的html,您可能需要尝试不同的解析器。

下面是一个示例,说明如何使用作为对象加载的各种JSON数据

工作示例-使用Python测试2.6.92.7.103.3.53.5.0

导入json
json_数据=“”
{
“数组”:[
1.
2.
3.
],
“布尔”:真,
“空”:空,
“数字”:123,
“对象”:{
“a”:“b”,
“c”:“d”,
“e”:“f”
},
“字符串”:“你好,世界”
}
'''
data=json.load(json_数据)
列表0=[
数据['array'][0],
数据['array'][1],
数据['array'][2],
数据['boolean'],
数据['null'],
数据['number'],
数据['object']['a'],
数据['object']['c'],
数据['object']['e'],
数据['string']
]
打印(“”)
数组值0{0}
数组值1{1}
数组值2{2}
布尔值{3}
空值{4}
数值{5}
对象值a值{6}
对象值c值{7}
对象值e值{8}
字符串值{9}
''。格式(*列表0))
输出

数组值0 1
数组值1 2
数组值2 3
布尔值True
空值无
数值123
对象值a值b
对象值c值d
对象值e值f
字符串值Hello World

请查看我编辑的问题,新代码返回json数据,但现在我想在数据中添加一些标记,我该怎么做?标记?json中的标记是什么意思?数据是json格式的,但里面有html代码。我需要检索它,然后你需要用BeautifulSoup解析json键上的字符串数据,并用通常的方式操作它。你可能应该在这上面贴一个新问题。你能告诉我一些例子吗?