当前位置: 首页 > article >正文

【Python】JSON

文章目录

    • 定义
    • Json格式数据转化

定义

JSON是一种轻量级的数据交互格式,可以按照JSON指定的格式去组织和封装数据

JSON本质上是一个带有特定格式的字符串

JSON可以直接和Python的字典或列表进行无缝转换

【主要功能】

JSON就是一个在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互

在这里插入图片描述

Json格式数据转化

  • 通过json.dump(data)方法把Python数据转化为了json数据,如果有中文可以带上:ensure.ascii = False参数来确保中文的正常交换
  • 通过json.load(data)方法把json数据转化为了Python列表或字典

JSON格式的数据要求很严格:

# josn数据的格式可以是:
{"name":"admin","age":18}  # 字典
# 也可以是:
[{"name":"admin","age":18},{"name":"root","age":16},{"name":"张三","age":66}]   ## 字典嵌套的列表

Python数据(字典和列表)和josn数据(字符串)的相互转化:

# 导入josn模块
import josn

# 准备符合格式josn格式要求的python数据
data = [{"name":"老王""age":16},{"name":"张三","age":20}]

# 通过josn.dumps(data)方法把python数据转化为了josn数据
data = josn.dumps(data)

# 通过josn.loads(data)方法把josn数据转化为了python数据
data = josn.loads(data)

【代码示例】

# 导入josn模块
import json

# 准备列表,列表内每一个元素都是字典,将其转换成JSON
data = [{"name":"老王", "age":16}, {"name":"张三", "age":20}]
# 通过josn.dumps(data)方法把python数据转化为了josn数据
json_str = json.dumps(data,ensure_ascii = False)  # ascii转换成中文显示
print(type(json_str))
print(json_str)
# 准备字典,将字典转换成json
d = {"name":"周杰轮","addr":"台北"}
json_str = json.dumps(d, ensure_ascii = False)
print(type(json_str))
print(json_str)

# 将json字符串转换成Python数据类型[{k:v,k:v},{k:v,k:v}]
s = '[{"name":"老王","age":16},{"name":"张三","age":20}]'
l = json.loads(s)
print(type(l))
print(l)
# 将json字符串转换成Python数据类型{k:v,k:v}
s = '{"name":"周杰轮","addr":"台北"}'
d = json.loads(s)
print(type(d))
print(d)

'''运行结果:
<class 'str'>
[{"name": "老王", "age": 16}, {"name": "张三", "age": 20}]
<class 'str'>
{"name": "周杰轮", "addr": "台北"}
<class 'list'>
[{'name': '老王', 'age': 16}, {'name': '张三', 'age': 20}]
<class 'dict'>
{'name': '周杰轮', 'addr': '台北'}
'''

http://www.kler.cn/a/512803.html

相关文章:

  • K8S中Pod控制器之Job控制器
  • 一文玩转生成式AI新星DeepSeek-V3,带你5分钟配置自己的随身AI
  • 【QT】已解决:Qt4.11.0无法使用MSVC编译器问题
  • Python入门:3.Python的输入和输出格式化
  • 【C语言篇】深入探究 C 语言指针:揭开指针变量与地址的神秘面纱
  • 【Elasticsearch】filterQuery过滤查询
  • 计算机网络 (52)秘钥分配
  • 家用路由器:WAN口和LAN口区别?
  • 华为OD机试E卷 --矩阵扩散--24年OD统一考试(Java JS Python C C++)
  • c++解决常见内存泄漏问题——智能指针的使用及其原理
  • 牛客周赛76:JAVA
  • 华为 Ascend 平台 YOLOv5 目标检测推理教程
  • Web 音视频(一)基础知识
  • 模型部署工具01:Docker || 用Docker打包模型 Build Once Run Anywhere
  • AI大模型探索之路-实战篇:智能化IT领域搜索引擎之github网站在线搜索
  • 【深度学习基础】线性神经网络 | softmax回归的从零开始实现
  • 主从复制
  • MySQL下载安装配置(超级超级入门级)
  • ThreeJs能力演示——图层导入导出
  • Vue 3中的路由(Router)详解