我从一个网站获取许多页面的html源代码,我需要将其转换为json对象并与json doc中的其他元素结合使用。 。我已经看到很多关于同一主题的问题,但没有对它们有帮助。
我的代码:
url = "https://totalhash.cymru.com/analysis/?1ce201cf28c6dd738fd4e65da55242822111bd9f"
htmlContent = requests.get(url, verify=False)
data = htmlContent.text
print("data",data)
jsonD = json.dumps(htmlContent.text)
jsonL = json.loads(jsonD)
ContentUrl='{ \"url\" : \"'+str(urls)+'\" ,'+"\n"+' \"uid\" : \"'+str(uniqueID)+'\" ,\n\"page_content\" : \"'+jsonL+'\" , \n\"date\" : \"'+finalDate+'\"}'
上面的代码给了我unicode类型,但是,当我把这个输出放在jsonLint中时,它给了我无效的json错误。有人可以帮我理解如何将完整的html转换成json对象吗?
答案 0 :(得分:9)
jsonD = json.dumps(htmlContent.text)
将原始HTML内容转换为JSON字符串表示形式。
jsonL = json.loads(jsonD)
将JSON字符串解析回常规字符串/ unicode对象。这会导致无操作,因为dumps()
执行的任何转义都会被loads()
还原。 jsonL
包含与htmlContent.text
相同的数据。
尝试使用json.dumps
生成最终的JSON,而不是手动构建JSON:
ContentUrl = json.dumps({
'url': str(urls),
'uid': str(uniqueID),
'page_content': htmlContent.text,
'date': finalDate
})
答案 1 :(得分:0)
您可以使用tojson模块,简单易懂:)
python3 -m pip install tojson --user