【问题标题】:Extract data as JSON in HTML page from nested list从嵌套列表中提取 HTML 页面中的 JSON 数据
【发布时间】:2018-05-12 00:16:52
【问题描述】:

我的数据可以在这里找到:https://paste2.org/72LmCn2P

如何从这种 JSON 中提取数据?

我可以从 Firefox 的视图中看到,Firefox 可以将此列表转换为有效的 JSON 格式。片段代码:

    with urllib.request.urlopen("url") as url:
        soup = BeautifulSoup(url, "html.parser")
        output_file.write(str(json.loads(soup.get_text())))

如何将此类数据转换为有用的转换数据?

【问题讨论】:

    标签: python json beautifulsoup


    【解决方案1】:

    它看起来像你得到的 JSON 响应 - 这意味着你不需要 HTML 解析器来解析它 - 直接用 json.load() 加载它:

    import json
    
    with urllib.request.urlopen("url") as response:
        data = json.load(response)
        print(data)
    

    【讨论】:

    • 感谢您的建议。我得到错误:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xf6 in position 68: invalid start byte
    • @madik_atma 啊,你需要指定编码 - 这可能是相关的:stackoverflow.com/a/7146199/771848
    • 在您的代码中,您使用了.load,在他为.loads 解释的链接中?你的意思是 .load 接受关键字编码?
    • @madik_atma 你可以做json.loads(response.read(), encoding="your_encoding")
    • 它的工作现在在他的流程下:data = json.loads(response.read().decode('utf-8', 'ignore')) output_json.write(str(data))。但它仍然没有进入有用的阵型。如何从该响应数据中提取或加载数据?谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 2020-06-28
    • 1970-01-01
    • 2023-01-01
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    相关资源
    最近更新 更多