Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以像本网站(toolslick)一样使用Python将HTML转换为JSON?_Python_Json - Fatal编程技术网

是否可以像本网站(toolslick)一样使用Python将HTML转换为JSON?

是否可以像本网站(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,我去toolsick.com把它转换成JSON。所以,我得到了这个JSON,我想知道是否有可能完全按照它的原样,但用Python。我能用什么?正则表达式?图书馆?一圈?我尝试了一些事情,但没有成功。它不需要是JSON格式,但我认为这是最好的,因为我可以使用['tr'][0]访问这些值。多谢各位

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帮助很大。非常感谢。