1、概述

Python操作json文件在测试中会经常用到,那么python怎么操作json文件呢,今天就来简单了解一下。Python中提供了dumps、dump、loads、load,用于字符串 和 python数据类型间进行转换。

2、json.dumps()

json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。

1)dict类型数据转成str演示

# encoding:utf-8
import json # 字典
var_dir = {'name': 'zhangsan', 'password': 'zs123456'}
# 字典转为字符串
var_str = json.dumps(var_dir) # 打印变量
print(var_dir)
print(var_str) # 打印变量类型
print(type(var_dir))
print(type(var_str))

运行结果

2)dict类型数据转成str应用

# encoding:utf-8
import json var_dir = {'name': 'zhangsan', 'password': 'zs123456'}
# 字典转为字符串,此步必不可少,否则数据写入json文件时会报错
var_str = json.dumps(var_dir)
file_path = '../dataconfig/test.json' with open(file_path,'w') as fp:
fp.write(var_str)
fp.close()

3、json.loads()

json.loads()用于将str类型的数据转成dict

# encoding:utf-8
import json # 字典
var_dir = {'name': 'zhangsan', 'password': 'zs123456'}
# 字典转为字符串
var_str = json.dumps(var_dir)
# 字符串转为字典
var_conver_dir = json.loads(var_str) # 打印变量
print(var_dir)
print(var_str)
print(var_conver_dir) # 打印变量类型
print(type(var_dir))
print(type(var_str))
print(type(var_conver_dir))

运行结果如下,str转dir时会发生编码转换,str会转换成unicode,因此红色框中的打印结果会出现u

4、json.dump()

json.dump()用于将dict类型的数据转成str,并写入到json文件中。因此如下两种方法都可将数据写入json文件

# encoding:utf-8
import json var_dir1 = {'name': 'zhangsansan', 'password': 'zss123456'}
var_dir2 = {'name': 'lisisi', 'password': 'lss123456'}
file_path = '../dataconfig/test.json' # 方法一:数据写入json文件
# 字典转为字符串
var_str = json.dumps(var_dir1)
with open(file_path,'w') as fp:
fp.write(var_str)
fp.close() # 方法二:数据写入json文件
json.dump(var_dir2,open(file_path,'w'))

5、json.load()

json.load()用于从json文件中读取数据

# encoding:utf-8
import json file_path = ('../dataconfig/login.json')
data = json.load(open(file_path)) print(data)
print(type(data)) for key in data.keys():
print('key: %s value: %s' % (key, data.get(key)))

运行结果如下

6、封装方法读取json文件,根据key返回对应值

# coding:utf-8
import json class OperJson:
# 构造函数
def __init__(self,filepath=None):
if filepath:
self.filepath = filepath
else:
self.filepath = "../dataconfig/login.json"
self.data = self.read_data() def read_data(self):
# 这样写比fp = open(self.filepath)好,以防打开后忘了关闭,忘写fp.close()
with open(self.filepath) as fp:
data = json.load(fp)
return data def get_data(self,keyname):
return self.data[keyname] if __name__ == '__main__':
op = OperJson()
print op.get_data('login')
print op.get_data('getUserInfo')

12-Python操作json的更多相关文章

  1. python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用

    python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用 redispy安装安装及简单使用:https://github.com/andymccurdy/r ...

  2. python操作json来存储简单的数据,pickle来操作复杂的数据

    json作为不同语言间进行数据交互的媒介,在当下已经渐渐取代了之前的xml,看一波python操作json # coding = ascii import json import pickle imp ...

  3. python 操作json

    认识 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - Dece ...

  4. 使用python操作json文本文件

    使用python读写文本文件内容时,我们知道如果文本文件里的内容无规律,那么修改起来比较麻烦.但是如果文本文件存储是有规律的,比如JSON格式,在利用python内置的函数把JSON格式的数据转成py ...

  5. python操作json

    概念 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON.XML等.反序列化就是从存储区域(JSON,XML)读取反序列化对象的状态 ...

  6. python操作json数据格式--基础

    非常基础的json库的用法,后续添加数据格式.编码等内容 参考文章 json进阶 Python的json模块提供了一种很简单的方式来编码和解码JSON数据. 其中两个主要的函数是 json.dumps ...

  7. Python操作JSON数据代码示例

    #!/usr/bin/env python import json import os def json_test(): return_dic = {} json_data = { 'appid':' ...

  8. python操作json文件获取内容

    写case时,将case 写到json文件比写到,写python一定要学会处理json 以下,是要处理的json 处理操作包括:打开json文件,获取json文件内容,关闭json文件,读取内容中的对 ...

  9. python操作json文件

    import json class OperationJson(object): def __init__(self,file_name=None): if file_name: self.file_ ...

  10. python 操作json数据

    简介 JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式,通常是以键值对的方式呈现,其简洁和清晰的层次结构使得JSON成为理想的数据交换语言,而 ...

随机推荐

  1. 初次见面,C++(的博客作业)

    懵懂无知.编程是什么?要是你在两个月前问我这个问题,你可能只会得到一个回答“天知道”.依稀记得在初中,上电脑课的老师曾经触及过编程的皮毛(那时候也没有编程的概念,听的似懂非懂),旁边一个同学却在十分熟 ...

  2. Spring 文件上传MultipartFile 执行流程分析

    在了解Spring 文件上传执行流程之前,我们必须知道两点: 1.Spring 文件上传是基于common-fileUpload 组件的,所以,文件上传必须引入此包 2.Spring 文件上传需要在X ...

  3. CVTE C/C++开发工程师笔试题(二)

    问题描述:打印重复元素 给定一个数组,内容可能包含1到N的整数,N最大为40000,数组可能含有重复的值,且N的取值不定.若只剩余5KB内存可用,请设计函数尽可能快的答应数组中所有重复的元素. voi ...

  4. C运算符

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号. C 语言内置了丰富的运算符,并提供了以下类型的运算符: 算术运算符.关系运算符.逻辑运算符.位运算符.赋值运算符.杂项运算符 C 中的运算符优先 ...

  5. 防止网页被别人的网站iframe,服务端如何设置HTTP头部中的X-Frame-Options信息?

    一.现象:in a frame because it set 'X-Frame-Options' to 'deny'. 二.服务配置 因为,有时候为了防止网页被别人的网站iframe,我们可以通过在服 ...

  6. Debian9安装后的一些配置

    第一步   修改源 su root vi /etc/apt/sources.list #建议先备份,不过系统好像有已经备份好的 加入国内源,保存 apt-get update   #更新源       ...

  7. 非WifI环境处理

    //1.创建网络状态监测管理者 AFNetworkReachabilityManager *mangerStatus = [AFNetworkReachabilityManager sharedMan ...

  8. Laravel API Tutorial: How to Build and Test a RESTful API

    With the rise of mobile development and JavaScript frameworks, using a RESTful API is the best optio ...

  9. Python unittest使用小结

    unittest是Python自带的单元测试框架,其中最核心的四个概念是:test case, test suite, test runner, test fixture. 流程:TestLoader ...

  10. 第二阶段第九次spring会议

    今天我将对软件进行宠物信息的添加. 清屏功能 private void button5_Click(object sender, EventArgs e) { textBox2.Text = &quo ...