Python – XML 到 JSON
JSON文件是以 JavaScript 对象表示法 (JSON) 格式存储简单数据结构和对象的文件,这是一种标准数据交换格式。它主要用于在 Web 应用程序和服务器之间传输数据。JSON对象包含键/值对形式的数据。键是字符串,值是 JSON 类型。键和值用冒号分隔。每个条目(键/值对)由逗号分隔。 JSON 文件是轻量级的、基于文本的、人类可读的,并且可以使用文本编辑器进行编辑。
注意:有关更多信息,请参阅在Python中使用 JSON 数据
XML是一种用于存储数据的标记语言。它区分大小写。 XML 让您可以定义标记元素并生成定制的标记语言。 XML 中的基本单元称为元素。 XML 语言没有预定义的标签。它简化了数据共享、数据传输、平台更改、数据可用性 XML 文件的扩展名为 .xml
注意:有关详细信息,请参阅 XML |基本
JSON 和 XML 文件格式都用于在客户端和服务器之间传输数据。
但是,它们都具有相同的目的,尽管它们的方式不同。
JSON 和 XML 的比较
JSON XML JSON object has a type XML data is typeless JSON types: string, number, array, Boolean All XML data should be string Data is readily accessible as JSON objects XML data needs to be parsed JSON is supported by most browsers Cross-browser XML parsing can be tricky JSON has no display capabilities XML offers the capability to display data because it is a markup language JSON supports only text and number data type. XML support various data types such as number, text, images, charts, graphs, etc. It also provides options for transferring the structure or format of the data with actual data. Retrieving value is easy Retrieving value is difficult Supported by many Ajax toolkit Not fully supported by Ajax toolkit A fully automated way of deserializing/serializing JavaScript Developers have to write JavaScript code to serialize/de-serialize from XML Native support for object The object has to be express by conventions – mostly missed use of attributes and elements. It supports only UTF-8 encoding. It supports various encoding It doesn’t support comments. It supports comments. JSON files are easy to read as compared to XML. XML documents are relatively more difficult to read and interpret. It does not provide any support for namespaces It supports namespaces. It is less secured. It is more secure than JSON.
将 Xml 转换为 json
为了处理 JSON 文件格式, Python提供了一个名为 json 的模块。
第 1 步:使用 pip 或任何其他Python包管理器安装 xmltodict 模块
pip install xmltodict
步骤 2:使用关键字 import 导入 json 模块
import json
第 3 步:读取 xml 文件
在这里, “data_dict”是我们在将 XML 数据转换为字典数据类型后加载它的变量。
with open("xml_file.xml") as xml_file:
data_dict = xmltodict.parse(xml_file.read())
第 4 步:关闭 XML 文件
xml_file.close()
第 5 步:将 xml_data 转换为字典并将其存储在变量中
JSON 对象被花括号 { } 包围。它们以键值对的形式编写。
json.loads() 接受一个字符串并返回一个 json 对象。
json.dumps() 接收一个 json 对象并返回一个字符串。
我们使用 xml_data 作为输入字符串并生成Python对象,所以我们使用 json.dumps()
json_data = json.dumps(data_dict)
这里,json_data 是用来存储生成对象的变量。
第 6 步:将 json_data 写入输出文件
with open("data.json", "w") as json_file:
json_file.write(json_data)
第 7 步:关闭输出文件
json_file.close()
例子:
XML 文件:
Python3
# Program to convert an xml
# file to json file
# import json module and xmltodict
# module provided by python
import json
import xmltodict
# open the input xml file and read
# data in form of python dictionary
# using xmltodict module
with open("test.xml") as xml_file:
data_dict = xmltodict.parse(xml_file.read())
xml_file.close()
# generate the object using json.dumps()
# corresponding to json data
json_data = json.dumps(data_dict)
# Write the json data to output
# json file
with open("data.json", "w") as json_file:
json_file.write(json_data)
json_file.close()
输出: