Python中yaml和json文件的读取和应用
Python对yaml和json文件的读取:
yaml文件读取:
首先创建一个yaml文件test.yaml
import yaml #引入包
f=open(path) #建立Python的文件对象f, 打开yaml文件到文件对象f;注:这一操作在打开所有第三方文件格式的时候都要做,不一定是yaml文件
test=yaml.load(f) #通过yaml模块中的load函数,将yaml 数据以Python中字典的形式加载进来
注:path是test.yaml的文件路径,可以通过 path= os.path.dirname(os.path.realpath(_file_))+"test.yaml"的方式获取,如果py文件和yaml文件在同一个文件夹下,可以直接用'test.yaml'
然后字典test中的数据就可以灵活运用了
json文件读取:
json文件的读取方式和处理方式和yaml文件相同
import json
f=open(path)
test=json.load(f)
一个简单栗子:
# coding: UTF-8
import yaml
import json f= open('test.yaml')
test_f=yaml.load(f)
print f
print test_f g=open('test.json')
test_g=json.load(g)
print g
print test_g print type(test_f)
print type(test_g)
输出
<open file 'test.yaml', mode 'r' at 0x100c2b810>
{'Content-Type': 'application/x-www-form-urlencoded'}
<open file 'test.json', mode 'r' at 0x100c2b8a0>
{u'Content-Type': u'application/x-www-form-urlencoded'}
<type 'dict'>
<type 'dict'>
从以上的小栗子可以看出,yaml 文件和json文件的格式输出虽然都是字典,但还是有小区别的,这就带来一些影响
json的输出带u:也就是unicode的格式标志,而Python的格式一般会在文件开头定义成UTF-8
这就导致对于json文件,解析时有时会出现错误,而接口测试的接口响应数据就是json格式,所以在出来接口响应数据的py文件中,要加入以下两句:
import sys
#设置默认解码格式,如果不加这句请求的返回值有的是Unicode,logging输出时会报解码错误
reload(sys)
sys.setdefaultencoding('utf-8')
而yaml 文件一般用做用例,来记录请求参数
yaml文件与json文件的区别
yaml文件书写格式:
Testcase_name:test
Method: POST
Testcase:
- ID: 1
Header:
Content-Type: application/x-www-form-urlencoded
x-access-token: ""
Data:
name: "aa"
age:"bb"
Result:
resultcode: 0
resultmsg: ""
yaml输出格式:
{
'Method': 'POST',
'Testcase_name': 'test'
'Testcase':
[
{'Header':
{'x-access-token': '',
'Content-Type': 'application/x-www-form-urlencoded'},
'Data': {'age': 'bb',
'name': 'aa'},
'ID': 1,
'Result':
{'resultcode': 0,
'resultmsg': ''}
}
],
}
json文件书写格式:
{
"Content-Type": "application/x-www-form-urlencoded"
}
补充:python文件有自带的读取函数
读取方式:
f=open('test_try.yaml')
test=f.read()
这种方式不用引用模块,但是test的类型是字符串
Python中yaml和json文件的读取和应用的更多相关文章
- 通过Jquery中Ajax获取json文件数据
1. JSON(JavaScript Object Notation): javaScript对象表示法: 是存储和交换文本信息的语法,比xml更小,更快,更易解析. 2. JSON基本书写格式 : ...
- 【转】python 历险记(四)— python 中常用的 json 操作
[转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...
- Python中基本的读文件和简单数据处理
Python中基本的读文件和简单数据处理 暂无评论 DataQuest上面的免费课程(本文是Python基础课程部分),里面有些很基础的东西(csv文件读,字符串预处理等),发在这里做记录.涉及下面六 ...
- 在 Node.js 中处理大 JSON 文件
在 Node.js 中处理大 JSON 文件 场景描述 问题一: 假设现在有一个场景,有一个大的 JSON 文件,需要读取每一条数据经过处理之后输出到一个文件或生成报表数据,怎么能够流式的每次读取一条 ...
- 编写Java程序,在硬盘中选取一个 txt 文件,读取该文档的内容后,追加一段文字“[ 来自新华社 ]”,保存到一个新的 txt 文件内
查看本章节 查看作业目录 需求说明: 在硬盘中选取一个 txt 文件,读取该文档的内容后,追加一段文字"[ 来自新华社 ]",保存到一个新的 txt 文件内 实现思路: 创建 Sa ...
- Python中异常和JSON读写数据
异常可以防止出现一些不友好的信息返回给用户,有助于提升程序的可用性,在java中通过try ... catch ... finally来处理异常,在Python中通过try ... except .. ...
- 一文综述python读写csv xml json文件各种骚操作
Python优越的灵活性和易用性使其成为最受欢迎的编程语言之一,尤其是对数据科学家而言.这在很大程度上是因为使用Python处理大型数据集是很简单的一件事情. 如今,每家科技公司都在制定数据战略. ...
- python接口自动化(九)--python中字典和json的区别(详解)
简介 这篇文章的由来是由于上一篇发送post请求的接口时候,参数传字典(dict)和json的缘故,因为python中,json和dict非常类似,都是key-value的形式,为啥还要这么传参,在群 ...
- python中字典和json的区别
python中,json和dict非常类似,都是key-value的形式,而且json.dict也可以非常方便的通过dumps.loads互转 定义 python中,json和dict非常类似,都是k ...
随机推荐
- php explode()函数 语法
php explode()函数 语法 作用:把字符串打散为数组 语法:explode(separator,string,limit)大理石机械构件 参数: 参数 描述 separator 必需.规定在 ...
- 远程仓库(GitHub)的使用
1.注册登录 在 GitHub 上注册登录 暂时忽略不讲 2.创建新的远程仓库 在GitHub网站上创建新的仓库.不管你是先在本地创建仓库还是先在远程创建仓库,要想把代码提交到远程仓库都是要先手动创建 ...
- Android Studio使用tips
安装位置:C:\Users\xxx\AppData\Local\Android\sdk https://developer.android.com/topic/libraries/support-li ...
- LUOGU P4783 【模板】矩阵求逆(高斯消元)
传送门 解题思路 用高斯消元对矩阵求逆,设\(A*B=C\),\(C\)为单位矩阵,则\(B\)为\(A\)的逆矩阵.做法是把\(B\)先设成单位矩阵,然后对\(A\)做高斯消元的过程,对\(B\)进 ...
- BZOJ 1018: [SHOI2008]堵塞的交通traffic(线段树分治+并查集)
传送门 解题思路 可以离线,然后确定每个边的出现时间,算这个排序即可.然后就可以线段树分治了,连通性用并查集维护,因为要撤销,所以要按秩合并,时间复杂度\(O(nlog^2 n)\) 代码 #incl ...
- (转)教你分分钟搞定Docker私有仓库Registry
转:https://www.cnblogs.com/Javame/p/7389093.html 一.什么是Docker私有仓库Registry 官方的Docker hub是一个用于管理公共镜像的好地方 ...
- ibatis 的使用
1. 文本的使用 select ‘day’+Num from Table;//Sql select convert(varchar,'day')+Num from Table;//ibatis
- php关键字static使用
php中static关键字使用: 情景1:静态变量 使用static关键字定义静态变量 静态变量:只存在于函数作用域内,也就是说,静态变量只存活在栈中.一般的函数内变量在函数结束后会释放,比如局部变量 ...
- Qt文件夹遍历
void FindFile(const QString &_filepath) { QDir dir(_filepath); for each (QFileInfo mfile in dir. ...
- git---从已有分支拉出新分支
文章目录 开发中,经常需要从一个已有的分支拉出一个新分支,去这个新分支做一些开发改动,这里示例为: 从master分支,重新拉取出一个新的分支,名字为dev,具体命令如下: 切换到被copy的分支(m ...