【python】JSON快速使用

文章目录

1、什么是JSON

  • json全名叫javaScript 对象表示法(J avaS cript O bject Notation)
  • JSON是轻量级的文本数据交换格式
  • JSON独立语言
  • json具有自我描述性,更易理解
  • json比xml更小、更快,更易解析

2、JSON标准库的作用

  • 使用json字符串生成python对象(load)
  • 由python对象格式化称为json字符串(dump)

3、python和json数据类型转换

将数据从python 转换到json格式,数据类型上会有变化

python json
dict object
list,tuple array
str string
int,float&float-derived Enums number
True true
False false
None null

4、json使用

json模块使用简单,绝大多数场合下,我们只需要使用下面四个方法就可以了

  • json.dump(obj,fp)将python 数据类型转换并保存到json格式的文件内
  • json.dumps(obj)将python数据类型转换为json格式的字符串
  • json.load(fp)从json格式的文件中读取数据并转换程python类型
  • json.loads(s)将json格式的字符串转化为python的类型

4.1、从python 对象格式化一个Json String

python 复制代码
person = {"name":"ZS","age":30,"tel":['17788866677','19988866645'],"isonly":True}
print(type(person))
print(person)

jsonStr = json.dumps(person,indent=4,sort_keys=True)#对key进行排序
print(type(jsonStr))
print(jsonStr)

【output】

bash 复制代码
<class 'dict'>
{'name': 'ZS', 'age': 30, 'tel': ['17788866677', '19988866645'], 'isonly': True}
<class 'str'>
{
    "age": 30,
    "isonly": true,
    "name": "ZS",
    "tel": [
        "17788866677",
        "19988866645"
    ]
}

4.2、写入.json文件

bash 复制代码
with open('data.json','w') as fp:
    json.dump(person,fp,indent=4)

4.3、Json String 转化成python 对象

python 复制代码
print(type(pythonObj))
print(pythonObj)
s = '["a",1,"AGE",{"F":true,"l":"na"}]'
pythonObj = json.loads(s)
print(type(pythonObj))
print(pythonObj)

【output】

bash 复制代码
<class 'dict'>
{'age': 30, 'isonly': True, 'name': 'ZS', 'tel': ['17788866677', '19988866645']}
<class 'list'>
['a', 1, 'AGE', {'F': True, 'l': 'na'}]

4.4、读取.json文件

python 复制代码
with open('data.json','r') as fp:
    pyObj = json.load(fp)
print(pyObj)
相关推荐
寻星探路3 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
lly2024064 小时前
Bootstrap 警告框
开发语言
2601_949146535 小时前
C语言语音通知接口接入教程:如何使用C语言直接调用语音预警API
c语言·开发语言
曹牧5 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
KYGALYX5 小时前
服务异步通信
开发语言·后端·微服务·ruby
zmzb01035 小时前
C++课后习题训练记录Day98
开发语言·c++
ValhallaCoder5 小时前
hot100-二叉树I
数据结构·python·算法·二叉树
猫头虎6 小时前
如何排查并解决项目启动时报错Error encountered while processing: java.io.IOException: closed 的问题
java·开发语言·jvm·spring boot·python·开源·maven
YUJIANYUE7 小时前
PHP纹路验证码
开发语言·php
仟濹7 小时前
【Java基础】多态 | 打卡day2
java·开发语言