详解python读写json文件

python处理json文本文件主要是以下四个函数:

函数 作用
json.dumps 对数据进行编码,将python中的字典 转换为 字符串
json.loads 对数据进行解码,将 字符串 转换为 python中的字典
json.dump 将dict数据写入json文件中
json.load 打开json文件,并把字符串转换为python的dict数据

json.dumps / json.loads

数据转换对照:

json python
object dict
array list
string str
number (int) int
number (real) float
true True
false False
null None

代码示例:

import json
tesdic = {
    'name': 'Tom',
    'age': 18,
    'score':
        {
            'math': 98,
            'chinese': 99
        }
}
print(type(tesdic))
json_str = json.dumps(tesdic)
print(json_str)
print(type(json_str))
newdic = json.loads(json_str)
print(newdic)
print(type(newdic))

输出为:

<class 'dict'>
{"name": "Tom", "age": 18, "score": {"math": 98, "chinese": 99}}
<class 'str'>
{'name': 'Tom', 'age': 18, 'score': {'math': 98, 'chinese': 99}}
<class 'dict'>

json.dump / json.load

写入json的内容只能是dict类型,字符串类型的将会导致写入格式问题:

with open("res.json", 'w', encoding='utf-8') as fw:
    json.dump(json_str, fw, indent=4, ensure_ascii=False)

则json文件内容为:

"{\"name\": \"Tom\", \"age\": 18, \"score\": {\"math\": 98, \"chinese\": 99}}"

我们换一种数据类型写入:

with open("res.json", 'w', encoding='utf-8') as fw:
    json.dump(tesdic, fw, indent=4, ensure_ascii=False)

则生成的josn就是正确的格式:

{
    "name": "Tom",
    "age": 18,
    "score": {
        "math": 98,
        "chinese": 99
    }
}

同理,从json中读取到的数据也是dict类型:

with open("res.json", 'r', encoding='utf-8') as fw:
    injson = json.load(fw)
print(injson)
print(type(injson))
{'name': 'Tom', 'age': 18, 'score': {'math': 98, 'chinese': 99}}
<class 'dict'>

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Python json读写方式和字典相互转化

    在Python中,json指的是符合json语法格式的字符串,可以单行或者多行. 它可以方便的在使用在多种语言中,这里介绍的是在python中的字典(dict)与json字符串相互转化的方式. 1. 导入json包 import json 2. 初始化一个字典数据 dict_ = { 'name': 'Jack', 'age': 22, 'skills': ['Python', 'Java', 'C++', 'Matlab'], 'major': '计算机技术', 'english': '英语六

  • python读写json文件的简单实现

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C.C++.Java.JavaScript.Perl.Python等).这些特性使JSON成为理想的数据交换语言.易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率). JSON在python中分别由list和dict组成. 这是用于序列化的两个模块: json: 用于

  • 浅谈Python中的异常和JSON读写数据的实现

    异常可以防止出现一些不友好的信息返回给用户,有助于提升程序的可用性,在java中通过try ... catch ... finally来处理异常,在Python中通过try ... except ... else来处理异常 一.以ZeroDivisionError为例,处理分母为0的除法异常 def division(numerator,denominator): result=numerator/denominator return result ret1=division(1,5) prin

  • python如何读写json数据

    本文实例为大家分享了python读写json数据的具体代码,供大家参考,具体内容如下 案例: 在web应用中常常用到json数据进行传输数据,本质上是字典类型数据转换成字符串,通过字符串进行网页传输,然后把接收到的字符串转换成字典类似数据 需求:实现字典转换成字符串,字符串转换成字典数据类型,写入文件 如何做? 1.明确dumps和dump的区别,dump的接口是文件,直接写入文件,dumps把对应的数据类型转换成字符串,loads 和dumps相反,load直接从文件中读取文件并把数据转换成对

  • python 读写中文json的实例详解

     python 读写中文json的实例详解 读写中文json 想要 读写中文json ,可以使用python中的 json 库可以对json进行操作.读入数据可以使用 json.load. f = file(path) data = json.load(f) json被载入到一个dict类型的object对象中. 使用 json.dump可以输出json.不过输出的文本并不是中文,而是转换为 utf-8的格式.此处需要: output = json.dump(jsonData,targetFil

  • 详解python读写json文件

    python处理json文本文件主要是以下四个函数: 函数 作用 json.dumps 对数据进行编码,将python中的字典 转换为 字符串 json.loads 对数据进行解码,将 字符串 转换为 python中的字典 json.dump 将dict数据写入json文件中 json.load 打开json文件,并把字符串转换为python的dict数据 json.dumps / json.loads 数据转换对照: json python object dict array list str

  • 详解 Python 读写XML文件的实例

    详解 Python 读写XML文件的实例 Python 生成XML文件 from xml.dom import minidom # 生成XML文件方式 def generateXml(): impl = minidom.getDOMImplementation() # 创建一个xml dom # 三个参数分别对应为 :namespaceURI, qualifiedName, doctype doc = impl.createDocument(None, None, None) # 创建根元素 r

  • Python读写JSON文件的操作详解

    目录 JSON JSON 起源 JSON 样例 Python 原生支持 JSON 序列化 JSON 简单的序列化示例 JSON 反序列化 简单的反序列化示例 应用案例 编码和解码 JSON JSON 起源 JSON 全称 JavaScript Object Notation .是处理对象文字语法的 JavaScript 编程语言的一个子集.JSON 早已成为与语言无关的语言,并作为自己的标准存在. JSON 样例 { "data":[ { "id": "1

  • 详解python中的文件与目录操作

    详解python中的文件与目录操作 一 获得当前路径 1.代码1 >>>import os >>>print('Current directory is ',os.getcwd()) Current directory is D:\Python36 2.代码2 如果将上面的脚本写入到文件再运行 Current directory is E:\python\work 二 获得目录的内容 Python代码 >>> os.listdir (os.getcwd

  • 详解Python自动化之文件自动化处理

    一.生成随机的测验试卷文件 假如你是一位地理老师, 班上有 35 名学生, 你希望进行美国各州首府的一个小测验.不妙的是,班里有几个坏蛋, 你无法确信学生不会作弊.你希望随机调整问题的次序, 这样每份试卷都是独一无二的, 这让任何人都不能从其他人那里抄袭答案.当然,手工完成这件事又费时又无聊. 下面是程序所做的事: • 创建 35 份不同的测验试卷. • 为每份试卷创建 50 个多重选择题,次序随机. • 为每个问题提供一个正确答案和 3 个随机的错误答案,次序随机. • 将测验试卷写到 35

  • 详解Python读取yaml文件多层菜单

    需要用到的Python知识点 Python的对象属性方法: 用到字典{key:value}值的提取: 列表的增加: if循环结合break的使用: yaml文件读取: 代码如下: #!/usr/bin/python34 import sys,os,re,yaml,time #reload(sys) #sys.setdefaultencoding('utf-8') ######################对input输入字符类型判断并转化##################### def in

  • 详解python破解zip文件密码的方法

    1.单线程破解纯数字密码 注意: 不包括数字0开头的密码 import zipfile,time,sys start_time = time.time() def extract(): zfile = zipfile.ZipFile('IdonKnow.zip')#读取压缩包,如果用必要可以加上'r' for num in range(1,99999,1): try: pwd = str(num) zfile.extractall(path='.',pwd=pwd.encode('utf-8')

  • 详解python中各种文件打开模式

    在python中,总的来说有三种大的模式打开文件,分别是:a, w, r 当以a模式打开时,只能写文件,而且是在文件末尾添加内容. 当以a+模式打开时,可以写文件,也可读文件,可是在读文件的时候,会发现读出来的数据为空,是因为a+模式是在文件末尾添加内容,所以其指针已经指到了文件末尾,所以读出来的数据就是空的. # 在文件末尾添加数据 f = open('test.txt','a+') f.write('test') f.close() # 读出数据为空 f = open('test.txt',

  • 详解python上传文件和字符到PHP服务器

    很多朋友在留言区询问关于python上传文件和字符到服务器的问题,现编针对这个给大家整理了一个解决办法. 上传简单的字符串 def send_str_server(self): payload = {'key1': 'value1', 'key2': 'value2'} r = requests.post("http://httpbin.org/post", data=payload) 介绍:payload 为键值对形式的数据,在服务器的数据的显示为 key1=value1&k

随机推荐