python - 试图在python中将JSON转换为字典
问题描述
我为 application/ld+json 抓取了一个网站,它返回 json,我想将字符串转换为 python 字典,但它似乎不起作用。在终端中,我从 None 收到错误 JSONDecodeError("Expecting value", s, err.value)。我对使用 JSON 比较陌生,所以我可能犯了一个愚蠢的错误,但是我在堆栈溢出中发现的所有内容都不起作用。任何帮助将不胜感激,并感谢您花时间阅读我的帖子!
这是我的代码
from flask import Flask, render_template
from bs4 import BeautifulSoup
import requests
import json
source = requests.get('https://www.visionlearning.com/en/library/Chemistry/1/Nuclear-Chemistry/59').text
soup = BeautifulSoup(source, 'html.parser')
jsonString = str(soup.find_all('script', type='application/ld+json')[0])
print(json.loads(jsonString))
解决方案
如果您打印出 jsonString,您将看到它包含<script>
选项卡,只需获取内部内容:
jsonString = str(soup.find_all('script', type='application/ld+json')[0].text)
推荐阅读
- php - 我想编写 php 将 json 添加到包中
- docusignapi - DocuSign API - 缺少文件夹项目
- scala - 在 Scala 中捕获异常期间处理返回类型的最佳方法
- oracle - Oracle 用户数据库导出命令的范围(用户/模式级别)?
- reactjs - 如何在不使用 browserHistory 的情况下清空 location.state(因为它被标记为不安全)。this.props.location.state 值不会在页面刷新时重置
- javascript - 使用 JavaScript 在 Google 地图上移动巴士图标
- python - 如何使用python更改二进制图像的颜色?
- android - 如何在Android中登录而不会崩溃?
- c# - 方法在 onGUI() 方法中不起作用
- javascript - 无法读取 Node.js 中未定义的属性“forEach”