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互转
  • 可以与QJsonObjectQJsonArray互转
  • 负责封装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

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。