gpt4 book ai didi

python - 如何将具有不规则列的html代码转换为嵌套的json文件?

转载 作者:行者123 更新时间:2023-11-28 00:31:42 24 4
gpt4 key购买 nike

我有以下 HTML 代码。我想转换下面的 HTML 代码:

<div class="company_data__list">

<div class="company_data__row"><div class="company_data__head">Name</div><div class="company_data__data">ABC Company<br/>Subtitle</div></div>
<div class="company_data__row"><div class="company_data__head">Capital</div><div class="company_data__data">230000</div></div>
<div class="company_data__row"><div class="company_data__head">Total</div><div class="company_data__data">103</div></div>

<div class="company_data__row"><div class="company_data__head">Name</div><div class="company_data__data">XYZ Company<br/>Subtitle</div>
<div class="company_data__row"><div class="company_data__head">Total</div><div class="company_data__data">10</div></div>

<div class="company_data__row"><div class="company_data__head">Name</div><div class="company_data__data">CAT Company<br/>Subtitle</div></div>
<div class="company_data__row"><div class="company_data__head">Capital</div><div class="company_data__data">430000</div></div>
<div class="company_data__row"><div class="company_data__head">Total</div><div class="company_data__data">10233</div></div>
<div class="company_data__row"><div class="company_data__head">URL</div><div class="company_data__data">www.abc.com</div></div>

</div>



转换成如下所示的 Json 文件:

{ id: '1',
data:{
name: 'ABC CAT Company',
capital: '230000',
total:'103'
},
id:'2',
data: {
name: 'XYZ CAT Company',
total:'10'
},
id:'3',
data: {
name: 'CAT Company',
capital: '430000',
total:'10',
url:'www.abc.com'
},


}

我正在使用 python3、bs4、re(正则表达式)我在匹配 html 标题行和数据行时遇到了问题,因为它没有特定的#id 来区分。

最佳答案

下面的代码可以帮到你。

html_text = 'your_html_text'    
splits = re.split('\n\n', html_text)[1:]
output = []
for i, text in enumerate(splits):
matches = [re.search(r'company_data__head">(\w+).*company_data__data">([\w\s\.]+)', m) for m in text.split('\n')]
attrs = {}
for match in matches:
if match:
key = match.group(1)
value = match.group(2)
attrs[key] = value
if attrs:
output.append({'id': i + 1, 'data': attrs})

输出

[{'id': 1, 'data': {'Name': 'ABC Company', 'Capital': '230000', 'Total': '103'}}, {'id': 2, 'data': {'Name': 'XYZ Company', 'Total': '10'}}, {'id': 3, 'data': {'Name': 'CAT Company', 'Capital': '430000', 'Total': '10233', 'URL': 'www.abc.com'}}]

关于python - 如何将具有不规则列的html代码转换为嵌套的json文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58601809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com