利用python解析xml, json

本文介绍了解析豆瓣网站的sitemap_index.xml文件的方法,并演示了如何使用Python的xml.dom.minidom模块来提取其中的URL信息。此外,还展示了如何创建并读取一个简单的JSON配置文件。

 XML

需要到的库:

from xml.dom.minidom import parse
import xml.dom.minidom

豆瓣sitemap_index.xml格式如下(2016-10-29):

<sitemapindex>
    <sitemap>
        <loc>https://www.douban.com/sitemap3782.xml.gz</loc>
        <lastmod>2016-10-19T10:36:31Z</lastmod>
    </sitemap>
    <sitemap>
        <loc>https://www.douban.com/sitemap3783.xml.gz</loc>
        <lastmod>2016-10-19T10:36:31Z</lastmod>
    </sitemap>
</sitemapindex>

解析过程:

xml_str=douban.sitemap.xml
DOMTree =xml.dom.minidom.parseString(xml_str)
collection = DOMTree.documentElement
elements=collection.getElementsByTagName("sitemap")
for i in elements:
    a=i.getElementsByTagName("loc")
    print(a[0].childNodes[0].nodeValue)

 Json

map={}
for i in range(0,3783):
    map[i]=0

with open("text\\sitemap_config.json","w") as f:
    json.dump(map,f)

map={}
with open("text\\sitemap_config.json", 'r') as f:
    map = json.load(f)
print(map)

转载于:https://www.cnblogs.com/fei-hsueh/p/6106284.html

Python中有多种库可以用来解析XML文件并将其转换为JSON格式,其中最常用的是`xml.etree.ElementTree`库和`dicttojson`或者`python-dotenv`库结合`json`库。 1. 使用`xml.etree.ElementTree`库: ```python import json import xml.etree.ElementTree as ET def xml_to_dict(element): if len(element) == 0: return element.text result = {} for child in element: child_data = xml_to_dict(child) if child.tag in result: if type(result[child.tag]) is list: result[child.tag].append(child_data) else: result[child.tag] = [result[child.tag], child_data] else: result[child.tag] = child_data return result def xml_to_json(xml_file_path, json_file_path): tree = ET.parse(xml_file_path) root = tree.getroot() data = xml_to_dict(root) with open(json_file_path, 'w') as f: json.dump(data, f, indent=4) # 示例 xml_to_json('your_xml_file.xml', 'output.json') ``` 2. 使用`dicttojson`库: ```python from dicttojson import dicttojson def parse_xml_to_json(xml_content): # 首先需要将XML字符串转换为ElementTree对象 from xml.dom.minidom import parseString dom = parseString(xml_content) root = dom.documentElement return dicttojson(root) # 示例 with open('your_xml_file.xml', 'r') as f: xml_string = f.read() json_output = parse_xml_to_json(xml_string) print(json.dumps(json_output, indent=4)) ``` 注意替换`'your_xml_file.xml'`为你的实际XML文件路径。执行后,你会得到一个JSON格式的数据结构,然后你可以选择保存到文件或者直接操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值