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 = '//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

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

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
Người bánDebit/ChequeCredit/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

Bài Viết Liên Quan

Chủ Đề