【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)
相关推荐
码路飞2 小时前
写了个 AI 聊天页面,被 5 种流式格式折腾了一整天 😭
javascript·python
曲幽4 小时前
FastAPI压力测试实战:Locust模拟真实用户并发及优化建议
python·fastapi·web·locust·asyncio·test·uvicorn·workers
敏编程9 小时前
一天一个Python库:jsonschema - JSON 数据验证利器
python
前端付豪9 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
databook9 小时前
ManimCE v0.20.1 发布:LaTeX 渲染修复与动画稳定性提升
python·动效
花酒锄作田1 天前
使用 pkgutil 实现动态插件系统
python
前端付豪1 天前
LangChain链 写一篇完美推文?用SequencialChain链接不同的组件
人工智能·python·langchain
曲幽1 天前
FastAPI实战:打造本地文生图接口,ollama+diffusers让AI绘画更听话
python·fastapi·web·cors·diffusers·lcm·ollama·dreamshaper8·txt2img
老赵全栈实战1 天前
Pydantic配置管理最佳实践(一)
python
阿尔的代码屋1 天前
[大模型实战 07] 基于 LlamaIndex ReAct 框架手搓全自动博客监控 Agent
人工智能·python