【发布时间】:2021-06-02 22:19:43
【问题描述】:
我有一个 JSON 数据列表,希望从“data-target-user-id”中提取所有 id。如何使用 regex 或 beautifulsoup 做到这一点?
my_lst_JSON = [‘<div id="a-exse-tile" class="j-exse profile-tile" data-exp-enabled="true" user-id="115389" user-type="8" data-viewing-self="false" <!--section --></div></div></div>’,
‘<div id="a-exse-tile" class="j-exse profile-tile" data-exp-enabled="true" user-id="1109" user-type="9" data-viewing-self="false" <!--section --></div></div></div>’,
‘<div id="a-exse-tile" class="j-exse profile-tile" data-exp-enabled="true" user-id="2890" user-type="7" data-viewing-self="false" <!--section --></div></div></div>’,
‘<div id="a-exse-tile" class="j-exse profile-tile" data-exp-enabled="true" user-id="22567" user-type="8" data-viewing-self="false" <!--section --></div></div></div>’,
‘<div id="a-exse-tile" class="j-exse profile-tile" data-exp-enabled="true" user-id="33872" user-type="1" data-viewing-self="false" <!--section --></div></div></div>’]
预期输出:
['115389', '1109', '2890', '22567', '33872']
我尝试了@zx485 建议的方法,代码如下:
ids_lst = []
for data in my_lst_JSON:
soup = BeautifulSoup(data, 'xml')
ids_lst.append([item.text for item in soup.findAll('div/@user-id')])
它返回一个空白列表...
感谢任何想法!
谢谢。
【问题讨论】:
-
这是用 JSON 封装的 XML。解包 XML 并使用 XPath
div/@user-id提取相关部分。 -
否...这只是字符串的一部分,它是一个示例列表。 @MendelG
标签: json python-3.x regex xml beautifulsoup