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. 关于webApi 跨域请求

    先说一下我的项目,后台单纯的webApi,前端采用Vue+axios, 说一下我遇见的问题,axios请求webAPI但是浏览器会报错,大致上就是不允许跨域请求. 于是查找解决办法发现以下代码(web ...

  2. 29. Divide Two Integers (JAVA)

    Given two integers dividend and divisor, divide two integers without using multiplication, division ...

  3. python学习中遇到的错误及解决办法

    1. nodename nor servname provided 原因:Python程序中有段程序调用 socket.gethostbyname(socket.gethostname()) sock ...

  4. R语言读取XML数据

  5. 基于IPv6的数据包抓包分析(GNS3)

    一.实验拓扑 二.路由配置 路由R1.R2.R3.R4.R5详细配置: 1.配置R1: R1(config)#interface fastEthernet 0/1 R1(config-if)#ipv6 ...

  6. 大数据学习(一)-------- HDFS

    需要精通java开发,有一定linux基础. 1.简介 大数据就是对海量数据进行数据挖掘. 已经有了很多框架方便使用,常用的有hadoop,storm,spark,flink等,辅助框架hive,ka ...

  7. 010 Editor 8.0.1 之 暴力破解

    一.工具及软件介绍二.破解1.打开调试程序2.打开注册页面3.在弹出窗口API中下断4.点击注册按钮5.逐一进去观察6.找到正确的授权字符串7.找到函数头8.找到计算出EBX的CALL9.进入函数跟踪 ...

  8. linux下ping命令出现ping: sendto: Network is unreachable

    问题:ping外网出现: sendto: Network is unreachable 查看: #route Route命令 : 在数据包没有有效传递的情况下,可以利用route命令查看路由表 [ro ...

  9. Putty6.0 提示Access denied

    1.如果putty能正常使用,解决方法很简单: 只要在Putty的configuration里面Connection->SSH->Auth->GSSAPI的配置中,去掉默认的Atte ...

  10. Webmagic 爬虫框架 爬取马蜂窝、携程旅游、汽车之家游记信息

    WebMagic学习 遇到的问题 Log4j错误 解决:在src目录下添加配置文件 log4j.properties log4j.rootLogger=INFO, stdout, file log4j ...