【问题标题】:Beautiful soup (python) getting value of attribute美丽的汤(python)获取属性值
【发布时间】:2014-04-16 12:07:25
【问题描述】:

我有一些乱七八糟的汤,我一直在尝试解析,但我不知道该怎么做。页面上有一堆<div>标签,我可以顺利遍历找到我想要的div。

这个 div 有一个名为 "data-series" 的自定义属性,其值似乎是一些包含列表的字典列表。 data-series 属性的值如下所示:

<div data-series=
'[{"label":"Series 1","data":[[0,0.01214697],[1,0.01139803],[2,0.0101848]],"color":"#27a9e3"},
{"label":"series 2","data":[[0,0.00745604375],[1,0.00885196875],[2,0.009824050833]],"color":"#ffb848"}]'....

然后继续使用其他一些自定义属性。我正在寻找在这个嵌套混乱中提取一个数字

我想最终打印出来的值是0.01139803。在列表中,它位于第一个字典中,并且是 "data" 键的值。但是"data"键的值本身就是一个列表,是第二个嵌套元素的第二个元素([1][1]

如何用漂亮的汤提取这个数字?

【问题讨论】:

    标签: python beautifulsoup


    【解决方案1】:

    data-series 的字符串是“JSON”(JavaScript 对象表示法)数据。您可以使用 json.loads() 将此字符串处理为 Python 数据结构,然后像处理任何 listdict 一样操作结果:

    >>> import json
    >>> s = '[{"label":"Series 1","data":[[0,0.01214697],[1,0.01139803],[2,0.0101848]],"color":"#27a9e3"},{"label":"series 2","data":[[0,0.00745604375],[1,0.00885196875],[2,0.009824050833]],"color":"#ffb848"}]'
    >>> d = json.loads(s)
    >>> d[0]['data'][1][1]
    0.01139803
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-10
      • 2020-07-16
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      • 2021-05-24
      相关资源
      最近更新 更多