drno-reg
@drno-reg
см не кратко

Как правильно преобразовать в json html таблицу?

Здравствуйте.

Есть такая html таблица

<table>
    <tr>
        <td>ID</td>
        <td>Vendor</td>
        <td>Product</td>
    </tr>
    <tr>
        <td>1</td>
        <td>Intel</td>
        <td>Processor</td>
    </tr>
    <tr>
        <td>2</td>
        <td>AMD</td>
        <td>GPU</td>
    </tr>
    <tr>
        <td>3</td>
        <td>Gigabyte</td>
        <td>Mainboard</td>
    </tr>
</table>


пытаюсь ее преобразовать в json

написал такой код

from bs4 import BeautifulSoup
from pprint import pprint

content_table = """
<table>
    <tr>
        <td>ID</td>
        <td>Vendor</td>
        <td>Product</td>
    </tr>
    <tr>
        <td>1</td>
        <td>Intel</td>
        <td>Processor</td>
    </tr>
    <tr>
        <td>2</td>
        <td>AMD</td>
        <td>GPU</td>
    </tr>
    <tr>
        <td>3</td>
        <td>Gigabyte</td>
        <td>Mainboard</td>
    </tr>
</table>
"""

soup = BeautifulSoup(content_table, 'html.parser')
rows = soup.find_all("tr")

thead=["ID","Vendor","Product"]

headers = {}

for i in range(len(thead)):
     headers[i] = thead[i]

# print(thead)
# print(headers)

for row in rows:
     cells = row.find_all("td")

item = {}

for index in headers:
     item[headers[index]] = cells[index].text
     data.append(item)

print(data)


в результате

[{'id': '3', 'vendor': 'Gigabyte', 'product': 'Mainboard'}, {'id': '3', 'vendor': 'Gigabyte', 'product': 'Mainboard'}, {'id': '3', 'vendor': 'Gigabyte', 'product': 'Mainboard'}, {'ID': '3', 'Vendor': 'Gigabyte', 'Product': 'Mainboard'}, {'ID': '3', 'Vendor': 'Gigabyte', 'Product': 'Mainboard'}, {'ID': '3', 'Vendor': 'Gigabyte', 'Product': 'Mainboard'}]


должно быть

[{'id': '3', 'vendor': 'Gigabyte', 'product': 'Mainboard'}, {'id': '3', 'vendor': 'Gigabyte', 'product': 'Mainboard'}, {'id': '3', 'vendor': 'Gigabyte', 'product': 'Mainboard'}]


что я делаю не так?
  • Вопрос задан
  • 312 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
pytablereader рекомендую для таблиц
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
18 мая 2024, в 22:58
3000 руб./за проект
18 мая 2024, в 21:07
5000 руб./за проект
18 мая 2024, в 20:58
5000 руб./за проект