python处理json文件操作
目录
JSON文件基本介绍
JSON的规则
python读取json文件的方式
使用json文件的例子
注意问题
JSON文件基本介绍
JSON:一种与开发语言无关的、轻量级的数据存储格式,全称JavaScript Object Notation,一种数据格式的标准规范,起初来源于JavaScript这门语言,后来随着使用的广泛,几乎每门开发语言都有处理JSON的API。优点:易于人的阅读和编写,易于程序解析与生产。JSON样例:首先一个花括号{},整个代表一个对象,同时里面是一种Key-Value的存储形式,它还有不同的数据类型来区分
JSON的规则
对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。规则如下:
1)映射用冒号(“:”)表示。名称:值
2)并列的数据之间用逗号(“,”)分隔。名称1:值1,名称2:值2
3) 映射的集合(对象)用大括号(“{}”)表示。{名称1:值1,名称2:值2}
4) 并列数据的集合(数组)用方括号(“[]”)表示。
[
{名称1:值,名称2:值2},
{名称1:值,名称2:值2}
]
5 元素值可具有的类型:string, number, object, array, true, false, null
JSON 用冒号(而不是等号)来赋值。每一条赋值语句用逗号分开。整个对象用大括号封装起来。可用大括号分级嵌套数据。对象描述中存储的数据可以是字符串,数字或者布尔值。对象描述也可存储函数,那就是对象的方法。{
"name":"孙悟空",
"age":502,
"skill":"fly"
}
python读取json文件的方式
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。json的文件格式:使用大括号来区分表示并存储数据; python操作json文件通过了两种方法:
load():用于读取json文件;
dump():用于写入json文件# 读取json文件内容,返回字典格式
with open('./path_file/info.json','r',encoding='utf8') as fp:
json_data = json.load(fp)
print('这是文件中的json数据:',json_data)
print('这是读取到文件数据的数据类型:', type(json_data))# 将字典数据写入到json文件中
dict1 = {'name': '孙悟空', 'age': 502, 'skill': 'fly'}
with open('./path_file/info.json','a',encoding='utf8')as fp:
json.dump(dict1,fp,ensure_ascii=False)
# 如果ensure_ascii ' '为false,则返回值可以包含非ascii值
python除了提供json文件的操作还提供了对于json格式转换的方法;loads() :将json字符串转换成字典格式;dumps() 将字典格式数据转换成json格式;# 将json字符串转换成字典格式
str1 = '{"name": "孙悟空", "age": 502, "skill": "fly"}'print('这是转换后的数据:',json.loads(str1))
print('这是转换后的数据类型:',type(json.loads(str1)))# 将字典格式数据转换成json格式
dict1 = {'name': '孙悟空', 'age': 502, 'skill': 'fly'}
print('这是将字典转换之后的数据:',json.dumps(dict1,ensure_ascii=False))
print('这是将字典转换之后的数据类型:',type(json.dumps(dict1,ensure_ascii=False))) # 如果ensure_ascii ' '为false,则返回值可以包含非ascii值
使用json文件的例子
# -*- coding: utf-8 -*-
# author:Mr Luo
# datetime:2021/4/30 10:36
import jsondict = {"name":"孙悟空","age":502,"skill":"fly","name":"猪八戒","age": 507,"skill": "fly"
}# 定义变量
jsontext = {'person':[]}
# 为变量赋值,
for key,value in dict.items():# print(key)jsontext['person'].append(value)# dumps() 将字典格式数据转换成json格式;
jsondata = json.dumps(jsontext)
with open('jsondata.json',"a+") as js:js.write(jsondata)# 读取json文件内容,返回字典格式
with open('./jsondata.json','r',encoding='utf8') as fp1:# loads() :将json字符串转换成字典格式json_data = json.load(fp1)print('json数据:',json_data)for key, value in json_data.items():print(key, ":", value)
注意问题
注意:json.decoder.JSONDecodeError: Extra data: line 1 column 37 (char 36)
问题原因:json文件中有两条记录,并且json.loads()无法解码多个记录。之前已经生成了一个json文件,再次运行时就会报这样的错误。
解决办法:将要打开的json文件重命名,再运行。
python处理json文件操作相关推荐
- Python读取json文件及写入json文件等操作
Python读取json文件及写入json文件等操作 读取json文件 写入json文件 读取json文件 load():用于读取json文件 import json with open(path,' ...
- python读取中文文件乱码-详解Python的json文件读取及中文乱码显示问题解决方法...
Python的json文件读取及解决中文乱码显示问题 本文实例讲述了Python实现的json文件读取及中文乱码显示问题解决方法.分享给大家供大家参考,具体如下: city.json文件的内容如下: ...
- python读json文件中不同的数据类型_怎么使用python提取json文件中的字段
python中为什么用json有什么作用 python的json模块中如何将变量添加到里面 python的json模块第一个是要打开的文件,第二个是打开的操作,为什么会如果你早认清你在别人心中没那么重 ...
- python在json文件中查找指定数据_Python中json的取值 如何使用python提取json中指定字段的数据...
python中为什么用json有什么作用 如何用python读取json里面的值啊我爱你,所以我给了你伤害我的权力,只要我能忍受,我会一直陪伴着你,但你不能伤害我太多. 数据如下,我想要读取name. ...
- 【Python】 python读取Json文件
解析Json的常见代码 import json # 导入json解析需要的包 1. json.loads()读取字符串到json object json.loads()是将str\bytes\byte ...
- 5、python中的文件操作
文章目录 文件操作介绍 文件的打开操作open() 文件的关闭操作 练习:词频统计操作 拓展:counter模块,可以用于统计和排序 os模块 关于操作系统 关于路径 json模块 将python对象 ...
- python 对 yaml 文件操作
python 对 yaml 文件操作 #!/usr/bin/env python # -*- encoding: utf-8 -*- """ @Introduce : p ...
- Python实现tab文件操作
Python实现tab文件操作 # -*- coding:gbk -*- import os class TABFILE: def __init__(self, filename, dest_ ...
- python怎么读取文件-python怎么读写文件操作
本节内容:I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input/ ...
最新文章
- 2202年了,AI还是不如猫!图灵奖得主Yann LeCun:3大挑战依然无解
- OllyDbg 使用笔记 (二)
- activeMQ使用总结
- Android 视频播放器 VideoView 的使用,播放本地视频 和 网络 视频
- Element-UI-快速入门(极简教程)
- reactJS -- 13 JSX样式与CSS的互转
- I - Defeat the Enemy UVALive - 7146 二分 + 贪心
- bzoj2525 1426
- [Everyday Mathematic]20150217
- java.sql.SQLException: 列名无效
- matlab 矩阵一致性检验,层次分析法判断矩阵求权值以及一致性检验程序.doc
- 0x0000004e蓝屏代码解决教程
- linux sqlserver命令,sqlserver的命令行
- 3.矩阵乘法和逆矩阵
- 通过sql语句查询实现分页
- C#-MSDN学习提高
- Angular6笔记(4)
- 简洁、快速的JavaScript框架/库:jQuery
- 顺丰测试开发面试总结
- JPA二:FindBy和JPQL
热门文章
- 天天写日记争当文艺青年 2014-5-28
- java判断一个字符串是否是数字和字母_java判断字符串是否为数字或中文或字母...
- vue+elementui左侧导航栏
- 数据分析--matplotlib绘图
- 产品“摆拍”展示 文心一言露怯
- 电脑上有一个程序一直在按向上_谁有好用的电脑备忘录或者便签软件工具?推荐一下呗...
- 嘴尚绝卤味为什么会受到欢迎?
- 黑苹果facetime_如何在消息或FaceTime中添加或删除电话号码
- PowerToys下载
- linux内核的自旋锁