Python JSON数据处理:基础方法快速入门
在Python中,处理JSON数据是常见的操作。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人类阅读和编写,也便于机器解析和生成。以下是关于如何在Python中处理JSON数据的基础教程。
在Python中处理JSON数据,首先需要导入内置的json模块:
import json
假设我们有一个包含JSON数据的字符串,我们可以使用json.loads()方法将其转换为Python对象(通常是字典):
json_data = \'{\”name\”: \”John\”, \”age\”: 30, \”city\”: \”New York\”}\’
python_dict = json.loads(json_data)
print(python_dict)
输出:
{\’name\’: \’John\’, \’age\’: 30, \’city\’: \’New York\’}
如果您有一个Python字典,并希望将其转换为JSON字符串,可以使用json.dumps()方法:
python_dict = {\”name\”: \”Alice\”, \”age\”: 25, \”city\”: \”London\”}
json_data = json.dumps(python_dict)
print(json_data)
输出:
{\”name\”: \”Alice\”, \”age\”: 25, \”city\”: \”London\”}
从文件读取JSON数据时,可以使用json.load()方法:
with open(\’data.json\’, \’r\’) as file:
data = json.load(file)
print(data)
这会将data.json文件中的JSON数据加载为Python对象。
如果要将Python对象写入JSON文件,可以使用json.dump()方法:
python_data = {\”name\”: \”Emma\”, \”age\”: 28, \”city\”: \”Paris\”}
with open(\’output.json\’, \’w\’) as file:
json.dump(python_data, file, indent=4)
这会将数据写入output.json文件,indent=4表示每层数据会缩进4个空格,便于阅读。
使用json.dumps()时,您可以通过参数来美化输出,例如添加缩进:
pretty_json = json.dumps(python_dict, indent=4, sort_keys=True)
print(pretty_json)
这会生成格式化的JSON字符串,并按键名排序。
qt操作json(QT 教程)
- 主要用于封装JSON值,类似于QVariant。 它能够存储以下值:
- 与QVariant互转
- 可以与QJsonObject,QJsonArray互转
- 负责封装JSON对象,是键/值对列表,其中键是惟一的字符串,值由QJsonValue表示。
- QJsonObject与QVariantMap可以互相转换。
- 接口与QMap相似,都具有size()、insert()和remove()等操作,还可以使用标准C++迭代器模式对其内容进行迭代。
- 直接构造使用:
【领QT开发教程学习资料,点击下方链接莬费领取↓↓,先码住不迷路~】
点击→领取
- 类似于QVariantMap操作:
- 与QVariantMap互相转换
- 还可以与QVariantHash互相转换,操作类似QVariantMap转换。
- 负责封装JSON数组,JSON数组是一个值列表,接口与QVariantList类似,QJsonArray与QVariantList可以互相转换。
- QJsonList操作于QList相似,都具有size()、insert()和removeAt()等操作,还可以使用标准的C++迭代器模式对其内容进行迭代。
- 直接赋值使用:
- 接口操作使用:
- 与QVariantList互相转换:
一天,三兄弟玩得甚欢,管家有些烦恼,三兄弟年龄不小了,还整天捣蛋,苦不堪言,是时候帮它们解决人生大事了,让他们得老婆来管这三兄弟。管家暗暗窃喜。老夫赶紧将他们的资料(数据)转换为字符串发给对面Web端的大户人家先。
管家拿出QJsonDocument工具转换他们三兄弟的资料。
分别将QJsonObject与QJsonArray转换为QByteArray。
管家看了看,拿到资料了,不知道资料是否正确,还是要确保一下就使用isNull接口验证:
焦急的管家等了几天,对面Web端怎么会没有答复的。正在焦虑走来走去,是不是资料不够好?还是发送出去格式不好看,看来要给他们弄弄格式,于是就找来了生成字符串的toJson来解决。
toJson面对焦急得管家自然也不敢怠慢,立马给出解决方案。
- JsonFormat::Indented(缩进型)
- JsonFormat::Compact(紧凑型)
管家修改了一下格式发出去,很快就收到对面妹子发送过来资料数据了,要快快解析看看。
管家先将QByteArray数据转换为QJsonDocument对象,然后再转换为QJsonObject或QJsonArray即可。
管家看了看,老夫还是有点效果的。
管家又接收到了一封信,可是解析不出来,正在头皮发麻着思考到底是那一步出错了。
突然跳出一个人QJsonParseError说:管家这锅我来背,我帮你找出问题,但我又一个小小得要求,就是你也给我介绍介绍。
管家无奈只好答应。
小子你可以啊,原来fromJson还有这操作。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。