Hướng dẫn python pandas html table to json - bảng html gấu trúc python sang json

Tôi đang có một bảng HTML như thế này. Đã thử sử dụng pandas.read_html và BeautifulSoup,. Thực sự bực bội, giúp đỡ !!

Đây là mã Python ban đầu của tôi:

url = 'http://financials.morningstar.com/ajax/keystatsAjax.html?t=wja&culture=en-CA®ion=CAN'
lm_json = requests.get(url).json()
ksContent = BeautifulSoup(lm_json["ksContent"],"html.parser")
table = ksContent.find("table", {'class': "r_table1 text2"})
jsonD = json.dumps(table.text)
jsonL = json.loads(jsonD)

'Bảng' sẽ có bảng HTML, nhưng chuyển đổi JSON tạo ra một văn bản thuần túy.

hỏi ngày 18 tháng 1 năm 2019 lúc 22:00Jan 18, 2019 at 22:00

Hướng dẫn python pandas html table to json - bảng html gấu trúc python sang json

Colin Zhongcolin ZhongColin Zhong

6971 Huy hiệu vàng7 Huy hiệu bạc16 Huy hiệu đồng1 gold badge7 silver badges16 bronze badges

2

Điều này có thể được giải quyết bằng cách sử dụng Python Pandas:

first_table = result.find("table")
df = pd.read_html(str(first_table))

with open("./table.json", "a+") as f:
    f.write(df[0].to_json(orient='records'))
    f.close()

Làm việc cho tôi.

Đã trả lời ngày 23 tháng 6 năm 2020 lúc 2:14Jun 23, 2020 at 2:14

Hướng dẫn python pandas html table to json - bảng html gấu trúc python sang json

water_ak47water_ak47water_ak47

98610 Huy hiệu bạc9 Huy hiệu đồng10 silver badges9 bronze badges

jsonD = json.dumps(htmlContent.text) Chuyển đổi nội dung HTML thô thành đại diện chuỗi JSON. jsonL = json.loads(jsonD) phân tích chuỗi JSON trở lại vào một đối tượng chuỗi/unicode thông thường. Điều này dẫn đến không có op, vì bất kỳ sự thoát nào được thực hiện bởi dumps() được hoàn nguyên bởi loads(). jsonL chứa dữ liệu giống như

first_table = result.find("table")
df = pd.read_html(str(first_table))

with open("./table.json", "a+") as f:
    f.write(df[0].to_json(orient='records'))
    f.close()
0.

Đã trả lời ngày 18 tháng 1 năm 2019 lúc 22:06Jan 18, 2019 at 22:06

Shane Fontaineshane FontaineShane Fontaine

2.3743 Huy hiệu vàng13 Huy hiệu bạc23 Huy hiệu đồng3 gold badges13 silver badges23 bronze badges

1

html-table-to-json

Chuyển đổi bảng HTML (không có hàng/colspan) sang JSON bằng cách sử dụng Python

Đầu vào

TÔINgười bánSản phẩm
1 IntelBộ xử lý
2 AMDGPU
3 GigabyteBo mạch chủ

Đầu ra

[
    {
        "product": "Processor", 
        "vendor": "Intel", 
        "id": "1"
    }, 
    {
        "product": "GPU", 
        "vendor": "AMD", 
        "id": "2"
    }, 
    {
        "product": "Mainboard", 
        "vendor": "Gigabyte", 
        "id": "3"
    }
]

Đầu vào (không có tiêu đề bảng)

1 IntelBộ xử lý
2 AMDGPU
3 GigabyteBo mạch chủ

Đầu ra

[
  [
    "1",
    "Intel",
    "Processor"
  ],
  [
    "2",
    "AMD",
    "GPU"
  ],
  [
    "3",
    "Gigabyte",
    "Mainboard"
  ]
]

Đầu vào

TÔI
Hướng dẫn python pandas html table to json - bảng html gấu trúc python sang json
Người bánDebit/Cheque Credit/DepositSản phẩm
IntelBộ xử lý
Salary
AMDGPU
GigabyteBo mạch chủ
CARD 1605
Đầu raĐầu vào (không có tiêu đề bảng)
NgàyMô tả giao dịch
Another Transaction
THĂNG BẰNG 13 tháng 7 năm 2022
NgàyMô tả giao dịch
TO XX-XXXX-XXXXXXX-51
THĂNG BẰNG 13 tháng 7 năm 2022

Đầu ra

[
    {
        "date": "13 Jul 2022",
        "transaction description": "SOME WORKPLACESalary",
        "debit/cheque": "",
        "credit/deposit": "$3,509.30",
        "balance": "OD $1,725.53"
    },
    {
        "date": "12 Jul 2022",
        "transaction description": "ATM DEPOSITCARD 1605",
        "debit/cheque": "",
        "credit/deposit": "$400.00",
        "balance": "OD $5,234.83"
    },
    {
        "date": "11 Jul 2022",
        "transaction description": "Another TransactionAnother Transaction",
        "debit/cheque": "",
        "credit/deposit": "$104.00",
        "balance": "OD $5,634.83"
    },
    {
        "date": "11 Jul 2022",
        "transaction description": "MB TRANSFERTO XX-XXXX-XXXXXXX-51",
        "debit/cheque": "$4.50",
        "credit/deposit": "",
        "balance": "OD $5,738.83"
    }
]

Đầu vào (không có tiêu đề bảng)

  • Ngày
  • Mô tả giao dịch