目录

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文件操作相关推荐

  1. Python读取json文件及写入json文件等操作

    Python读取json文件及写入json文件等操作 读取json文件 写入json文件 读取json文件 load():用于读取json文件 import json with open(path,' ...

  2. python读取中文文件乱码-详解Python的json文件读取及中文乱码显示问题解决方法...

    Python的json文件读取及解决中文乱码显示问题 本文实例讲述了Python实现的json文件读取及中文乱码显示问题解决方法.分享给大家供大家参考,具体如下: city.json文件的内容如下: ...

  3. python读json文件中不同的数据类型_怎么使用python提取json文件中的字段

    python中为什么用json有什么作用 python的json模块中如何将变量添加到里面 python的json模块第一个是要打开的文件,第二个是打开的操作,为什么会如果你早认清你在别人心中没那么重 ...

  4. python在json文件中查找指定数据_Python中json的取值 如何使用python提取json中指定字段的数据...

    python中为什么用json有什么作用 如何用python读取json里面的值啊我爱你,所以我给了你伤害我的权力,只要我能忍受,我会一直陪伴着你,但你不能伤害我太多. 数据如下,我想要读取name. ...

  5. 【Python】 python读取Json文件

    解析Json的常见代码 import json # 导入json解析需要的包 1. json.loads()读取字符串到json object json.loads()是将str\bytes\byte ...

  6. 5、python中的文件操作

    文章目录 文件操作介绍 文件的打开操作open() 文件的关闭操作 练习:词频统计操作 拓展:counter模块,可以用于统计和排序 os模块 关于操作系统 关于路径 json模块 将python对象 ...

  7. python 对 yaml 文件操作

    python 对 yaml 文件操作 #!/usr/bin/env python # -*- encoding: utf-8 -*- """ @Introduce : p ...

  8. Python实现tab文件操作

    Python实现tab文件操作 # -*- coding:gbk -*- import os class TABFILE:     def __init__(self, filename, dest_ ...

  9. python怎么读取文件-python怎么读写文件操作

    本节内容:I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input/ ...

最新文章

  1. 2202年了,AI还是不如猫!图灵奖得主Yann LeCun:3大挑战依然无解
  2. OllyDbg 使用笔记 (二)
  3. activeMQ使用总结
  4. Android 视频播放器 VideoView 的使用,播放本地视频 和 网络 视频
  5. Element-UI-快速入门(极简教程)
  6. reactJS -- 13 JSX样式与CSS的互转
  7. I - Defeat the Enemy UVALive - 7146 二分 + 贪心
  8. bzoj2525 1426
  9. [Everyday Mathematic]20150217
  10. java.sql.SQLException: 列名无效
  11. matlab 矩阵一致性检验,层次分析法判断矩阵求权值以及一致性检验程序.doc
  12. 0x0000004e蓝屏代码解决教程
  13. linux sqlserver命令,sqlserver的命令行
  14. 3.矩阵乘法和逆矩阵
  15. 通过sql语句查询实现分页
  16. C#-MSDN学习提高
  17. Angular6笔记(4)
  18. 简洁、快速的JavaScript框架/库:jQuery
  19. 顺丰测试开发面试总结
  20. JPA二:FindBy和JPQL

热门文章

  1. 天天写日记争当文艺青年 2014-5-28
  2. java判断一个字符串是否是数字和字母_java判断字符串是否为数字或中文或字母...
  3. vue+elementui左侧导航栏
  4. 数据分析--matplotlib绘图
  5. 产品“摆拍”展示 文心一言露怯
  6. 电脑上有一个程序一直在按向上_谁有好用的电脑备忘录或者便签软件工具?推荐一下呗...
  7. 嘴尚绝卤味为什么会受到欢迎?
  8. 黑苹果facetime_如何在消息或FaceTime中添加或删除电话号码
  9. PowerToys下载
  10. linux内核的自旋锁