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成为理想的数据交换语言,而 ...
随机推荐
- 关于webApi 跨域请求
先说一下我的项目,后台单纯的webApi,前端采用Vue+axios, 说一下我遇见的问题,axios请求webAPI但是浏览器会报错,大致上就是不允许跨域请求. 于是查找解决办法发现以下代码(web ...
- 29. Divide Two Integers (JAVA)
Given two integers dividend and divisor, divide two integers without using multiplication, division ...
- python学习中遇到的错误及解决办法
1. nodename nor servname provided 原因:Python程序中有段程序调用 socket.gethostbyname(socket.gethostname()) sock ...
- R语言读取XML数据
- 基于IPv6的数据包抓包分析(GNS3)
一.实验拓扑 二.路由配置 路由R1.R2.R3.R4.R5详细配置: 1.配置R1: R1(config)#interface fastEthernet 0/1 R1(config-if)#ipv6 ...
- 大数据学习(一)-------- HDFS
需要精通java开发,有一定linux基础. 1.简介 大数据就是对海量数据进行数据挖掘. 已经有了很多框架方便使用,常用的有hadoop,storm,spark,flink等,辅助框架hive,ka ...
- 010 Editor 8.0.1 之 暴力破解
一.工具及软件介绍二.破解1.打开调试程序2.打开注册页面3.在弹出窗口API中下断4.点击注册按钮5.逐一进去观察6.找到正确的授权字符串7.找到函数头8.找到计算出EBX的CALL9.进入函数跟踪 ...
- linux下ping命令出现ping: sendto: Network is unreachable
问题:ping外网出现: sendto: Network is unreachable 查看: #route Route命令 : 在数据包没有有效传递的情况下,可以利用route命令查看路由表 [ro ...
- Putty6.0 提示Access denied
1.如果putty能正常使用,解决方法很简单: 只要在Putty的configuration里面Connection->SSH->Auth->GSSAPI的配置中,去掉默认的Atte ...
- Webmagic 爬虫框架 爬取马蜂窝、携程旅游、汽车之家游记信息
WebMagic学习 遇到的问题 Log4j错误 解决:在src目录下添加配置文件 log4j.properties log4j.rootLogger=INFO, stdout, file log4j ...