广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python: xml转json
  • 889
分享到

Python: xml转json

Pythonxmljson 2023-01-31 01:01:19 889人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

1,引言GooSeeker早在9年前就开始了Semantic WEB领域的产品化,MS谋数台和DS打数机是其中两个产品。对web内容做结构化转换和语义处理的主要路线是 XML -> RDF -> Ontology Enginee

wKiom1dnjl3xp49HAABaGgp_tKo276.jpg

1,引言


GooSeeker早在9年前就开始了Semantic WEB领域的产品化,MS谋数台和DS打数机是其中两个产品。对web内容做结构化转换和语义处理的主要路线是 XML -> RDF -> Ontology Engineering。所以这两款产品的输出信息是XML格式的,实现第一步:结构化转换。单纯作为一个网页采集器来说,输出XML格式也有好处,这是一种标准格式,后续的数据处理可以很容易地接入,任意发挥。

在web集成和网站前端领域,JSON越来越普遍,在scrapy架构中,Scrapy dict数据结构本质上就是json,所以,由XML格式转换成JSON格式很有必要。

无论哪种编程语言,XML转Json都有很多现成的程序包,但是,就像前面说的,GooSeeker定义的XML格式主要用来做实体建模,有自己规定的一套语义结构描述标准。所以,不能直接使用现成的转换程序,或者需要在现成的转换程序上做些修改。

本文是一个实验过程,并没有考虑GooSeeker要求的语义结构,只是验证一下XML到Json的转换。

2,实验用的XML文件

我们使用《python爬虫实战(2):爬取京东商品列表》一文的结果文件,python爬虫爬取的结果保存在 京东手机列表_1.xml 文件中。内容如下图所示

230023zf7g3f3gfd3fhe4a.png

下面针对这个结果文件先做个xml转json的测试,为提取器gsExtractor添加输出Json文件的功能做技术准备。

3,测试过程

  • 测试使用的模块:xml.parsers.expat,  json

  • 测试输入: 以Python爬虫实战(2):爬取京东商品列表一文的xml结果文件 京东手机列表_1.xml 作为输入

代码如下:

#! /usr/bin/env python
# -*- coding:utf-8 -*-
# xml 转 json
# xml2json.py
# Version 1.0

from xml.parsers.expat import ParserCreate
import json

class Xml2Json:
    LIST_TAGS = ['COMMANDS']
    
    def __init__(self, data = None):
        self._parser = ParserCreate()
        self._parser.StartElementHandler = self.start
        self._parser.EndElementHandler = self.end
        self._parser.CharacterDataHandler = self.data
        self.result = None
        if data:
            self.feed(data)
            self.close()
        
    def feed(self, data):
        self._stack = []
        self._data = ''
        self._parser.Parse(data, 0)

    def close(self):
        self._parser.Parse("", 1)
        del self._parser

    def start(self, tag, attrs):
        assert attrs == {}
        assert self._data.strip() == ''
        self._stack.append([tag])
        self._data = ''

    def end(self, tag):
        last_tag = self._stack.pop()
        assert last_tag[0] == tag
        if len(last_tag) == 1: #leaf
            data = self._data
        else:
            if tag not in Xml2Json.LIST_TAGS:
                # build a dict, repeating pairs get pushed into lists
                data = {}
                for k, v in last_tag[1:]:
                    if k not in data:
                        data[k] = v
                    else:
                        el = data[k]
                        if type(el) is not list:
                            data[k] = [el, v]
                        else:
                            el.append(v)
            else: #force into a list
                data = [{k:v} for k, v in last_tag[1:]]
        if self._stack:
            self._stack[-1].append((tag, data))
        else:
            self.result = {tag:data}
        self._data = ''

    def data(self, data):
        self._data = data

if __name__ == '__main__':
    xml = open("京东手机列表_1.xml", 'r', encoding='UTF-8').read()
    result = Xml2Json(xml).result;
    outputfile = open("京东手机列表_1.json", 'w', encoding='UTF-8')
    outputfile.write(str(result))
    outputfile.close()
  • 在控制台运行:  $ python xml2json.py

  • 测试输出:京东手机列表_1.json。运行后在当前文件夹下可以看到新生成的json文件

232425squkhbgak0k5h00d.png


4,接下来的工作


  • 升级gsExtractor提取器类,加入新的方法,支持把提取结果从xml转换为json格式

  • 转换成的json结构必须符合GooSeeker要求的语义描述结构,为直接存入mongoDB做准备


5,相关文档
1,Python即时网络爬虫项目: 内容提取器的定义
2,Python爬虫实战(2):爬取京东商品列表

6,集搜客GooSeeker开源代码下载源
1, GooSeeker开源Python网络爬虫GitHub

7,文档修改历史

2016-06-20:V1.0,首次发布


--结束END--

本文标题: Python: xml转json

本文链接: https://www.lsjlt.com/news/183548.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python: xml转json
    1,引言GooSeeker早在9年前就开始了Semantic Web领域的产品化,MS谋数台和DS打数机是其中两个产品。对web内容做结构化转换和语义处理的主要路线是 XML -> RDF -> Ontology Enginee...
    99+
    2023-01-31
    Python xml json
  • python3 XML转Json
    win7 python3.6 xmltodict pip install xmltodict xml gb2312编码文件转换为json utf-8文件 支持中文 参考https://www.crifan.com/python_conv...
    99+
    2023-01-31
    XML Json
  • nodejs json转xml
    Node.js是一种基于Chrome V8 JavaScript引擎构建的服务器端运行环境。它能够使用JavaScript编写服务器端代码,同时也是目前最流行的服务器端编程语言之一。其中,JSON(JavaScript 对象表示法)是一种轻...
    99+
    2023-05-24
  • Python中xml和json格式互转
    Python中xml和json格式是可以互转的,就像json格式转Python字典对象那样。 xml格式和json格式互转用到的xmltodict库 安装xmltodict库 C:\Users\Administrator>pip3...
    99+
    2023-01-31
    格式 Python xml
  • python中将xml格式转json格式
    一、简介 在用python写脚本时,通常需要处理xml格式的文件或字符串。由于json格式处理的方便性, 我们可将其转为json格式进行处理。 二、步骤 1、安装工具包xmltodict 在命令行输入:pip install xmltod...
    99+
    2023-01-31
    格式 中将 python
  • javascript中xml如何转json
    这篇文章主要介绍javascript中xml如何转json,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!JavaScript可以做什么1.可以使网页具有交互性,例如响应用户点击,给用户提供更好的体验。2.可以处理表单...
    99+
    2023-06-14
  • python3-将xml文件转成json
    from xml.etree import ElementTree as et import json def readxml_et(): tree = et.ElementTree(file="D:\\vscode\\xml2...
    99+
    2023-01-30
    转成 文件 xml
  • python之json文件转xml文件案例讲解
    json文件格式 这是yolov4模型跑出来的检测结果result.json 下面是截取的一张图的检测结果 { "frame_id":1, #图片的序号 "filename...
    99+
    2022-11-12
  • Python怎么将xml格式转换为json格式
    本篇内容介绍了“Python怎么将xml格式转换为json格式”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Python编程中,经常遇到x...
    99+
    2023-06-02
  • php中xml转json格式如何转换
    这篇文章主要介绍php中xml转json格式如何转换,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php xml转json格式的方法:首先创建一个PHP示例文件;然后通过“function xmlToArray($x...
    99+
    2023-06-15
  • javascript中将xml转为json的方法
    这篇文章将为大家详细讲解有关javascript中将xml转为json的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。javascript中将xml转换为json字符串的方法:首先通过XML字符串或请...
    99+
    2023-06-14
  • java xml转为json的n种方法
    java xml转为json的两种方法 <?xml version="1.0" encoding="utf-8" ?> <auibinsuran...
    99+
    2022-11-12
  • JavaBean到XML和JSON的转换方法
    本篇内容主要讲解“JavaBean到XML和JSON的转换方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JavaBean到XML和JSON的转换方法”吧!XML和JSON是当今常用的两种数据...
    99+
    2023-06-18
  • php怎么将xml转为json格式
    本文小编为大家详细介绍“php怎么将xml转为json格式”,内容详细,步骤清晰,细节处理妥当,希望这篇“php怎么将xml转为json格式”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。方法一:使用SimpleX...
    99+
    2023-07-05
  • Java 操作XML转JSON数据格式
    java操作XML文档转为JSON数据格式 一、使用的maven依赖 org.dom4j dom4j 2.1.3 二...
    99+
    2023-10-27
    java xml json
  • 在AngularJS中如何将XML转换为JSON
    本篇文章为大家展示了在AngularJS中如何将XML转换为 JSON,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我们将谈谈如何在Angular  JS...
    99+
    2022-10-19
  • python xml转成dict
    可以转成dict   defdictlist(node):     res={}     res[node.tag]={}     xmltodict(node,res[node.tag])    ...
    99+
    2023-01-31
    转成 python xml
  • PHP中的JSON与XML格式怎么转换
    今天小编给大家分享一下PHP中的JSON与XML格式怎么转换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、JSON转XM...
    99+
    2023-07-05
  • php怎么将json格式转成xml格式
    这篇文章主要介绍“php怎么将json格式转成xml格式”,在日常操作中,相信很多人在php怎么将json格式转成xml格式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php怎么将json格式转成xml格式...
    99+
    2023-07-05
  • Python 提取dict转换为xml/json/table并输出的实现代码
    核心代码: #!/usr/bin/python #-*- coding:gbk -*- #设置源文件输出格式 import sys import getopt import json import cr...
    99+
    2022-06-04
    转换为 代码 dict
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作