12-Python操作json
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的更多相关文章
- python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用
python操作三大主流数据库(12)python操作redis的api框架redis-py简单使用 redispy安装安装及简单使用:https://github.com/andymccurdy/r ...
- python操作json来存储简单的数据,pickle来操作复杂的数据
json作为不同语言间进行数据交互的媒介,在当下已经渐渐取代了之前的xml,看一波python操作json # coding = ascii import json import pickle imp ...
- python 操作json
认识 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - Dece ...
- 使用python操作json文本文件
使用python读写文本文件内容时,我们知道如果文本文件里的内容无规律,那么修改起来比较麻烦.但是如果文本文件存储是有规律的,比如JSON格式,在利用python内置的函数把JSON格式的数据转成py ...
- python操作json
概念 序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON.XML等.反序列化就是从存储区域(JSON,XML)读取反序列化对象的状态 ...
- python操作json数据格式--基础
非常基础的json库的用法,后续添加数据格式.编码等内容 参考文章 json进阶 Python的json模块提供了一种很简单的方式来编码和解码JSON数据. 其中两个主要的函数是 json.dumps ...
- Python操作JSON数据代码示例
#!/usr/bin/env python import json import os def json_test(): return_dic = {} json_data = { 'appid':' ...
- python操作json文件获取内容
写case时,将case 写到json文件比写到,写python一定要学会处理json 以下,是要处理的json 处理操作包括:打开json文件,获取json文件内容,关闭json文件,读取内容中的对 ...
- python操作json文件
import json class OperationJson(object): def __init__(self,file_name=None): if file_name: self.file_ ...
- python 操作json数据
简介 JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式,通常是以键值对的方式呈现,其简洁和清晰的层次结构使得JSON成为理想的数据交换语言,而 ...
随机推荐
- 【Spring】Spring3+Spring3MVCの環境構築(中)
参考URL: https://www.cnblogs.com/lnsylt/p/10258457.html ■目録 ■環境設定 ①pom.xml <?xml version="1.0& ...
- 我们一起踩过的坑----react(antd)(二)
1.antd Upload默认值问题 需求是这样的,后台若没有图片默认值,则只有上传按钮,且只能上传一张图片:若有默认值,则显示默认头像图片, 可删除,删除之后有且只能添加一张图片,没有删除默认图片时 ...
- 阿里云web环境安装
阿里云web环境一键安装 云盘:链接: https://pan.baidu.com/s/1i4LPwtZ 密码: caph 包含安装包及PDF教程
- Centos6安装和配置etcd3
etcd 是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现.etcd 的灵感来自于 ZooKeeper 和 Doozer,侧重于: 简单:支持 curl 方式的用户 API ( ...
- Activity 启动模式 FLAG
原文:https://blog.csdn.net/youhongyan/article/details/64151922 一.Activity启动模式的设置在AndroidManifest.xml文件 ...
- Python学习笔记4基本数据类型续
start 16:36 时间格式化 程序计时:指测量起止动作所经历的时间的过程 实例四文本进度条 #a表示星号被复制的的次数 文本进度条的动态刷新 实现刷新功能的简单代码,但你会发现并没有实现在同一 ...
- k8s 网络模型
一.前言 k8s对Pods之间如何进行组网通信提出了要求,k8s对集群的网络有以下要求: 所有的Pods之间可以在不使用NAT网络地址转换的情况下相互通信 所有的Nodes之间可以在不使用NAT网络地 ...
- 小程序canvas绘制渐变色(简单入门)
呀,曾经的我是那么的单纯,天真,粗略的翻了一遍小程序画布API,没有看见渐变色,就以为不支持渐变色 于是在项目中直接把原本的渐变色换成了单一颜色展示,发现很low啊 但是,自从上次小程序API文档更新 ...
- 如何修改PCB后更新到原理图(以AD为例)
实际绘图过程中会有多种情况发生,例如根据以前的项目做修改应用于新的项目.只有PCB没有原理图....... 如何通过修改PCB后更新到原理图(主要在PCB中增加元器件以及添加网络标号进行连线后更新到原 ...
- PHP开发——目录
PHP开发基础 PHP开发——环境安装 PHP开发——基础 PHP开发——变量 PHP开发——超全局数组变量 PHP开发——常量 PHP开发——数据类型 PHP开发——进制转换 PHP开发——运算符 ...