是否可以像本网站(toolslick)一样使用Python将HTML转换为JSON?
我有这个HTML,我去toolsick.com把它转换成JSON。所以,我得到了这个JSON,我想知道是否有可能完全按照它的原样,但用Python。我能用什么?正则表达式?图书馆?一圈?我尝试了一些事情,但没有成功。它不需要是JSON格式,但我认为这是最好的,因为我可以使用['tr'][0]访问这些值。多谢各位是否可以像本网站(toolslick)一样使用Python将HTML转换为JSON?,python,json,Python,Json,我有这个HTML,我去toolsick.com把它转换成JSON。所以,我得到了这个JSON,我想知道是否有可能完全按照它的原样,但用Python。我能用什么?正则表达式?图书馆?一圈?我尝试了一些事情,但没有成功。它不需要是JSON格式,但我认为这是最好的,因为我可以使用['tr'][0]访问这些值。多谢各位 HTML: <tr> <td> <span class="theme1">1</span> Charisma
HTML:
<tr>
<td>
<span class="theme1">1</span> Charisma
</td>
<td>
<span class="theme1">1</span> Smartness
</td>
<td>
<span class="theme1">1</span> Health
</td>
</tr>
<tr>
<td></td>
<td></td>
<td>Age:
<span class="green">20</span>
</td>
</tr>
<tr>
<td colspan="3" class="active">Strength:
<span class="tooltip" data-tip="Lorem ipsum dolor sit amet, consectetur">
<icon>i-hand</icon> Hand
</span>
</td>
</tr>
<tr>
<td colspan="3" class="inactive">Weakness:
<span class="tooltip" data-tip="Donec egestas lectus quis">
<icon>i-feet</icon> Feet
</span>
</td>
</tr>
JSON:
{
"tr": [
{
"td": [
{
"span": {
"@class": "theme1",
"#text": "1"
},
"#text": "Charisma"
},
{
"span": {
"@class": "theme1",
"#text": "1"
},
"#text": "Smartness"
},
{
"span": {
"@class": "theme1",
"#text": "1"
},
"#text": "Health"
}
]
},
{
"td": [
"",
"",
{
"span": {
"@class": "green",
"#text": "20"
},
"#text": "Age:"
}
]
},
{
"td": {
"@colspan": "3",
"@class": "active",
"span": {
"@class": "tooltip",
"@data-tip": "Lorem ipsum dolor sit amet, consectetur",
"icon": "i-hand",
"#text": "Hand"
},
"#text": "Strength:"
}
},
{
"td": {
"@colspan": "3",
"@class": "inactive",
"span": {
"@class": "tooltip",
"@data-tip": "Donec egestas lectus quis",
"icon": "i-feet",
"#text": "Feet"
},
"#text": "Weakness:"
}
}
]
}
HTML:
1魅力
1聪明
1健康
年龄:
20
实力:
徒手
弱点:
工字脚
JSON:
{
“tr”:[
{
“td”:[
{
“跨度”:{
“@class”:“theme1”,
“#文本”:“1”
},
“#文本”:“魅力”
},
{
“跨度”:{
“@class”:“theme1”,
“#文本”:“1”
},
“#文本”:“智能”
},
{
“跨度”:{
“@class”:“theme1”,
“#文本”:“1”
},
“#文本”:“健康”
}
]
},
{
“td”:[
"",
"",
{
“跨度”:{
“@class”:“绿色”,
#正文:“20”
},
“#文本”:“年龄:
}
]
},
{
“td”:{
“@colspan”:“3”,
“@class”:“活动”,
“跨度”:{
“@class”:“工具提示”,
“@data tip”:“Lorem ipsum dolor sit amet,Concertetur”,
“图标”:“i-hand”,
“#文本”:“手”
},
“#文本”:“强度:”
}
},
{
“td”:{
“@colspan”:“3”,
“@class”:“不活动”,
“跨度”:{
“@class”:“工具提示”,
“@data tip”:“Donec egestas lectus quis”,
“图标”:“i型脚”,
“#文本”:“脚”
},
“#文本”:“弱点:”
}
}
]
}
适合此任务的库很少,例如
LXML也是一个用于解析数据的库,请参见
但是使用它们并不能提供您想要的JSON格式。对于给定的元素
标记,可能是这样的
{
"Status": "Active",
"Card name": "NAMEn",
"Account holder":
"NAME", "Card number": "1234",
"Card balance": "$18.30"
}
正如您所见,这不包括元数据,如类
,@data-tip
,等等。因此,最好且最简单的选择是使用您拥有的JSON格式,并使用它访问您想要的数据
比如说
import json
json_dict = json.load(JSON)#your data
# Now you can use it like dictionary
# For example:
print(json_dict["key"])
我不知道“模板是作为Python对象加载的模板的JSON”在html2json文档中是什么意思。我正在制作一个脚本,该脚本将从API发出请求并获取HTML,因此我无法使用网站来制作它。我将收到HTML,我想用Python处理它。所以,当我想要什么是“强度”时,我只需要使用var['tr'][0]['span'][0],类似的东西,然后我将从返回的HTML中获得强度。但是谢谢你,我想美苏会帮我的。我想我可以把它转换成JSON,我还不知道。我只是想要有固定位置的特定值或者类似的东西。我想我甚至不需要将它转换为JSON,因为如果我使用like soup.tr.td.span.text,我会得到1,这意味着魅力。因此,只需将它从soup对象转换为string即可。对于这个html2json就足够了,而beautifulsoup也会做同样的工作。您可以导入库并无缝使用它。请查看此库,它会对您有所帮助。是的!成功了!我得到了它。它以另一种方式起作用,但它起作用了。无需转换为JSON,BeautifulSoup帮助很大。非常感谢。