首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将刮过的数据转换为字典

将刮过的数据转换为字典
EN

Stack Overflow用户
提问于 2020-02-21 19:23:05
回答 2查看 134关注 0票数 0

我有一个XML文件,在运行我的美丽汤findAll(“命名-查询”)并打印出来之后,我得到了如下结果:

代码语言:javascript
复制
<named-query name="sdfsdfsdf">
        <query>
            ---Query here...--
        </query>
</named-query>

<named-query name="xkjlias">
        <query>
          ---Query here...--
        </query>
</named-query>
   .
   .
   .

是否有办法将其转换为字典、json或csv,例如:

name="sdfsdfsdf“查询=.

name="xkjlias“查询=。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-21 20:00:06

代码:

代码语言:javascript
复制
import json

from bs4 import BeautifulSoup


text = """
<named-query name="sdfsdfsdf">
    <query>
        ---Query here...--
    </query>
</named-query>

<named-query name="xkjlias">
    <query>
        ---Query here2...--
    </query>
</named-query>"""


soup = BeautifulSoup(text, 'html.parser')
queries = {nq.attrs['name']: nq.text.strip() for nq in soup.find_all('named-query')}
queries_json = json.dumps(queries)

print(queries)  # dict
print(queries_json)  # json

输出:

代码语言:javascript
复制
{'sdfsdfsdf': '---Query here...--', 'xkjlias': '---Query here2...--'}
{"sdfsdfsdf": "---Query here...--", "xkjlias": "---Query here2...--"}
票数 1
EN

Stack Overflow用户

发布于 2020-02-21 19:57:59

试试这个:

代码语言:javascript
复制
# initialize a dictionary
data = {}

# for each tag 'named-query 
for named_query in soup.findAll('named-query'):
        # get the value of name attribute and store it in a dict
        data['name'] = named_query.attrs['name']
        # traverse its children
        for child in named_query.children:
                # check for '\n' and empty strings
                if len(child.string.strip()) > 0:
                        data['query'] = child.string.strip()
print (data)
代码语言:javascript
复制
>>> {'name': 'sdfsdfsdf', 'query': '---Query here...--'}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60345046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档