我正试图让我的Python脚本解析某个站点上特定json文件中的一些数据(价格),但我无法让它工作。 它可以很好地提取整个页面,但不能单独提取某些数据。你知道吗
以下是我试图从中提取数据的JSON:
[{
"id": 1696146,
"name": "Genos",
"photo_url": "https://hobbydb-production.s3.amazonaws.com/processed_uploads/collectible_photo/collectible_photo/image/324461/1556082253-24867-7610/Genos_Vinyl_Art_Toys_60fb245b-1af9-4ad1-a5a2-c90d3e8291a6_medium.jpg",
"preorder": false,
"price": "$40.00",
"price_after_discount": "$40.00",
"seller_username": "BatmanPajamas",
"url": "https://www.hobbydb.com/marketplaces/2/cart/1696146"
}]
下面是我获得的代码,它允许我获取整个json:
import urllib.request, json
withurllib.request.urlopen("https://www.hobbydb.com/api/collectibles/for_sale_search?limit=5&original_site_id=10748&market_id=2") as url:
data = json.loads(url.read().decode())
print(data)
我尝试过各种代码,但每次我得到:
TypeError: list indices must be integers or slices, not str
你知道如何从这个JSON解析价格吗?你知道吗
外括号(
[]
)表示响应返回项目列表。因此,您需要循环遍历列表的索引,然后您可以访问您试图访问的内容。下面是我如何使用requests
我认为您遇到的问题是因为这个JSON对象以一个数组开始(一旦我们将它作为Python对象加载,它将是一个列表)。首先,您需要使用标准库中的
json
库。然后,您必须使用列表索引,然后是dict键来访问对象。你知道吗试试这个:
另外,请记住,
with
关键字创建了一个用于解析JSON数据的上下文,因此,一旦脚本转到此上下文之外的代码,您将无法再访问price
变量,因此您可能需要将该值赋给或设置为在该上下文之外创建的另一个变量。你知道吗迭代json数组:
仅显示价格
相关问题 更多 >
编程相关推荐