【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)
相关推荐
我是坏垠4 小时前
Crypto、Cipher与Password:Java加密开发的三个核心概念
java·开发语言·python
white_ant4 小时前
JDK LTS 版本升级迁移注意事项大全
java·开发语言
Bobolink_4 小时前
跨境业务网络环境评估,“干净、一致、独享”三个关键指标
开发语言·网络·php·跨境网络·网络环境
你怎么知道我是队长4 小时前
JavaScript的变量和数据类型介绍
开发语言·javascript·ecmascript
xingke4 小时前
C 语言多文件编程:(一)头文件、extern、编译链接
c语言·开发语言·多文件
测试秃头怪4 小时前
如何评估自动化测试脚本的编写时间和维护工作量?
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
姚青&5 小时前
测试左移体系
python·自动化
技术民工之路5 小时前
Python Socket编程零基础实战教程(TCP/UDP通信完整版)
python·tcp/ip·udp
戮漠summer5 小时前
Missing Semester 计算机教育中缺失的一课 Lecture 01 Shell
开发语言·后端·scala