Ответ 1
Возможно, ваши данные:
html_data = """
<table>
<tr>
<td>Card balance</td>
<td>$18.30</td>
</tr>
<tr>
<td>Card name</td>
<td>NAMEn</td>
</tr>
<tr>
<td>Account holder</td>
<td>NAME</td>
</tr>
<tr>
<td>Card number</td>
<td>1234</td>
</tr>
<tr>
<td>Status</td>
<td>Active</td>
</tr>
</table>
"""
Из которого мы можем получить ваш результат в виде списка с помощью этого кода:
from bs4 import BeautifulSoup
table_data = [[cell.text for cell in row("td")]
for row in BeautifulSoup(html_data)("tr")]
Чтобы преобразовать результат в JSON, если вам не нужен порядок:
import json
print json.dumps(dict(table_data))
Результат:
{
"Status": "Active",
"Card name": "NAMEn",
"Account holder":
"NAME", "Card number": "1234",
"Card balance": "$18.30"
}
Если вам нужен тот же порядок, используйте это:
from collections import OrderedDict
import json
print json.dumps(OrderedDict(table_data))
Что дает вам:
{
"Card balance": "$18.30",
"Card name": "NAMEn",
"Account holder": "NAME",
"Card number": "1234",
"Status": "Active"
}