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 ...
随机推荐
- Linux下安装gnuplot
sudo apt-get install gnuplot 但是在 terminal 里面输入: gnuplot 提示 Terminal type set to unknown.解决方法是安装 x11: ...
- 【C++11新特性】 C++11智能指针之weak_ptr
如题,我们今天要讲的是C++11引入的三种智能指针中的最后一个:weak_ptr.在学习weak_ptr之前最好对shared_ptr有所了解.如果你还不知道shared_ptr是何物,可以看看我的另 ...
- php rand()函数 语法
php rand()函数 语法 rand()函数怎么用? php rand()函数表示从参数范围内得到一个随机数,语法是rand(X,Y),从两个参数范围内得到一个随机数,随机数大于等于X或者小于等于 ...
- Java JsonPath grab InvalidPathException in code, you must be catching Java 7's java.nio.file.InvalidPathException instead of JsonPath's com.jayway.jsonpath.InvalidPathExceptio
I am using JsonPath and am able to parse my data and get the values when the path provided is correc ...
- shallow update not allowed
! [remote rejected] master -> master (shallow update not allowed) https://stackoverflow.com/quest ...
- 重新认识new
前言 感谢大佬:https://www.cnblogs.com/luxiaoxun/archive/2012/08/10/2631812.html www.cplusplus.com 因为这段时间在重 ...
- 建站手册-浏览器信息:Mozilla Firefox 浏览器
ylbtech-建站手册-浏览器信息:Mozilla Firefox 浏览器 1.返回顶部 1. http://www.w3school.com.cn/browsers/browsers_firefo ...
- UIsearchBar 自定义样式
对于修改输入框圆角 的需求, 可以通过修改搜索框背景图片的方式设置. - (void)setSearchFieldBackgroundImage:(nullable UIImage *)backgro ...
- 小程序中封装base64
function Base64() { // private property var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmn ...
- python赞乎--学习开发