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文件的读取和应用的更多相关文章

  1. 通过Jquery中Ajax获取json文件数据

    1. JSON(JavaScript Object Notation): javaScript对象表示法: 是存储和交换文本信息的语法,比xml更小,更快,更易解析. 2. JSON基本书写格式 : ...

  2. 【转】python 历险记(四)— python 中常用的 json 操作

    [转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...

  3. Python中基本的读文件和简单数据处理

    Python中基本的读文件和简单数据处理 暂无评论 DataQuest上面的免费课程(本文是Python基础课程部分),里面有些很基础的东西(csv文件读,字符串预处理等),发在这里做记录.涉及下面六 ...

  4. 在 Node.js 中处理大 JSON 文件

    在 Node.js 中处理大 JSON 文件 场景描述 问题一: 假设现在有一个场景,有一个大的 JSON 文件,需要读取每一条数据经过处理之后输出到一个文件或生成报表数据,怎么能够流式的每次读取一条 ...

  5. 编写Java程序,在硬盘中选取一个 txt 文件,读取该文档的内容后,追加一段文字“[ 来自新华社 ]”,保存到一个新的 txt 文件内

    查看本章节 查看作业目录 需求说明: 在硬盘中选取一个 txt 文件,读取该文档的内容后,追加一段文字"[ 来自新华社 ]",保存到一个新的 txt 文件内 实现思路: 创建 Sa ...

  6. Python中异常和JSON读写数据

    异常可以防止出现一些不友好的信息返回给用户,有助于提升程序的可用性,在java中通过try ... catch ... finally来处理异常,在Python中通过try ... except .. ...

  7. 一文综述python读写csv xml json文件各种骚操作

      Python优越的灵活性和易用性使其成为最受欢迎的编程语言之一,尤其是对数据科学家而言.这在很大程度上是因为使用Python处理大型数据集是很简单的一件事情. 如今,每家科技公司都在制定数据战略. ...

  8. python接口自动化(九)--python中字典和json的区别(详解)

    简介 这篇文章的由来是由于上一篇发送post请求的接口时候,参数传字典(dict)和json的缘故,因为python中,json和dict非常类似,都是key-value的形式,为啥还要这么传参,在群 ...

  9. python中字典和json的区别

    python中,json和dict非常类似,都是key-value的形式,而且json.dict也可以非常方便的通过dumps.loads互转 定义 python中,json和dict非常类似,都是k ...

随机推荐

  1. Java中实现线程同步的三种方法

    实现同步的三种方法 多线程共享数据时,会发生线程不安全的情况,多线程共享数据必须同步. 实现同步的三种方法: 使用同步代码块 使用同步方法 使用互斥锁ReetrantLock(更灵活的代码控制) 代码 ...

  2. 10.VScode Debug——2019年12月12日

    title: vscode debug date: "2019-09-17 16:17:16" tags: 技巧 categories: 技术驿站 1.为什么需要调试 写了很多行代 ...

  3. 使用PowerShell下载必应图片

    今天想聊聊POWERSHELL对于WEB页面的一些应用,本人也是最近才发觉其实PS也是可以做爬虫的...所以想抛砖引玉给大家一个思路. 这次要用到的主要命令是 invoke-webrequest 先来 ...

  4. 4412 RS485

    一.485硬件原理 差分对传输数据的原理 IO数据的传输→差分对 rs232传输的距离在15米以下,RS485传输距离是几十米到1000米以上 为什么485可以传输这么远 差分对的机制可以降低电磁场的 ...

  5. 编写现代 CSS 代码的 20 个建议

    明白何谓Margin Collapse 不同于其他很多属性,盒模型中垂直方向上的Margin会在相遇时发生崩塌,也就是说当某个元素的底部Margin与另一个元素的顶部Margin相邻时,只有二者中的较 ...

  6. UE编辑器

    引用ue的js 下载地址http://pan.baidu.com/s/1gdrQ35L <script type="text/javascript" src="__ ...

  7. JVM调优(三)——基于Btrace的监控调试

    JVM调优(三)--基于Btrace的监控调试 简介 Btrace可以动态地向目标应用程序的字节码注入追踪代码 用到的技术: JavaComplierApi.JVMTI.Agent.Instrumen ...

  8. 【SpringBoot】SpringBoot的基础,全面理解bean的生命周期

    前言 前段时间直接上手使用springboot开发了一个数据平台的后台部分,但是自身对于springboot的原理和过程还不是很清晰,所以反过来学习下springboot的基础. 大家都知道sprin ...

  9. 测开之路四十二:常用的jquery事件

    $(‘selector’).click() 触发点击事件$(‘selector’).click(function) 添加点击事件$(‘selector’).dbclick() 触发双击事件$(‘sel ...

  10. apm 应用性能管理(启动优化/ 掉帧卡顿/ 耗电/ 内存泄漏等)

    APM 首先查看各个阶段耗时 : (环境变量设置 dyldPRINTSTATISTICS = 1选项,) 1. 启动优化 关键: 找到耗时的原因 t总 = t1 (premain) + t1(main ...