RobotFramework-RequestsLibrary中To Json关键字使用中的问题

To Json的关键字主要功能是将Python字典和Json格式进行互相转换,

参数说明:

        content   被转换的对象
        pretty_print 默认是false,将Content 从Json转换为字典类型,如果定义为true,将Content从字典类型转换为Json

这个关键字主要是使用Python的Json类库两个方法,dumps方法(将字典转换为Json),loads方法(将Json转换为字典)。

这样问题就来了,在需要使用To_Json将字典转换为JSON时,就给pretty_print赋值为True。在关键字源码中判断pretty_print为True时,会调用_json_pretty_print。

_json_pretty_print代码:

    def _json_pretty_print(self, content):
        """ Pretty print a JSON object
        
        ‘content‘  JSON object to pretty print
        """
        temp = json.loads(content)
        return json.dumps(temp, sort_keys=True, indent=4, separators=(‘,‘, ‘: ‘))

可以看到_json_pretty_print方法中会先将content先进行loads方法,但content当前不是Json对象的,就会报错:TypeError: expected string or buffer

临时解决办法,把_json_pretty_print修改为:

    def _json_pretty_print(self, content):
        """ Pretty print a JSON object
        
        ‘content‘  JSON object to pretty print
        """
        return json.dumps(content, sort_keys=True, indent=4, separators=(‘,‘, ‘: ‘))

这样to_json关键字当pretty_print=true,会将字典类型的content转换为Json对象

时间: 2024-10-03 13:45:27

RobotFramework-RequestsLibrary中To Json关键字使用中的问题的相关文章

在JS和.NET中使用JSON (以及使用Linq to JSON定制JSON数据)

转载原地址: http://www.cnblogs.com/mcgrady/archive/2013/06/08/3127781.html 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如何使用JSON 在.NET中如何使用JSON 总结 JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.XML也是一种数据交换格式,为什么没有选择XML呢?因为XML虽然可以作为跨平台的数据

Delphi XE7中使用JSON

Delphi XE7有一个对JSON处理的单元,在你需要使用JSON的单元里面引入"System.json",随后你就可以用Delphi自己的json处理类了.我写的小例子只是对包含字符串和数组的JSON进行解析,这两种数据类型,我觉得是实际使用中最常用.有用的类型,所以我仅仅用这两种例子做演示! 演示代码: { 功能:DelphiXE7中使用JSON -------------------------------------------------------------------

在 Angular 中实现搜索关键字高亮

在 Angular 中,我们不应该试图直接修改 DOM 的内容,当需要更新 DOM 内容的时候,应该修改的其实是我们的数据模型,也就是 $scope 中的数据,Angular 会帮助我们将修改之后的数据展示在页面中. 但是,在有些情况下,比如我们有一个搜索框,希望将搜索的关键字在正文中高亮出来,这时候就会感觉比较吃力了,filter 可以帮助我们处理这种情况. 实际上,很多时候,我们的数据是不能直接输出到 DOM 中的,典型的比如日期,或者货币等等,通常需要将我们内部的数据格式化之后,再输出到页

odoo controllers 中type="Json" 或type="http"

服务端接收参考: # 导包 from odoo import http class HttpRequest(http.Controller): @http.route('/url', type='json', auth='public', website=True) def server_method(self, *args, **kwargs): # *args, **kwargs接收参数 pass # route中的参数可以参考odoo/http.py文件里def route(route=N

C++ 类模板三(类模版中的static关键字)

//类模版中的static关键字 #include<iostream> using namespace std; /* 类模板本质上是c++编译器根据类型参数创建了不同的类, c++编译器在利用类模板生成类的时候会为每个类生成一个static变量 那么对于类中的static关键字就非常好理解了 static关键字修饰的变量是属于类的 同一个类的对象共享类的static静态变量 类模板中的static修饰的变量数据类型必须是确定的 不可以是类型参数 因为静态变量在类对象之前初始化 这时候还没有通

浅析Java中的final关键字

原文出处: 海子 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. 一.final关键字的基本用法 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字

转载:浅析Java中的final关键字

文章转自:http://www.cnblogs.com/dolphin0520/p/3736238.html 谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法.下面是本文的目录大纲: 一.final关键字的基本用法 二.深入理解final关键字 若有不正之处,请多多谅解并欢迎指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cn

使用Json.Net解决MVC中各种json操作

最近收集了几篇文章,用于替换MVC中各种json操作,微软mvc当然用自家的序列化,速度慢不说,还容易出问题,自定义性也太差,比如得特意解决循环引用的问题,比如datetime的序列化格式,比如性能.NewtonSoft.json也就是Json.Net性能虽然不是最好的,但是是比较靠前的,其功能是最强大的,包含各种json操作模式.现在来看看mvc中的替换1, Controller.Json方法这个方法最容易出现循环引用,比如EF查出一个一对多集合想序列化,结果a引用了子表b,b中还引用了a,导

(转)Java中的static关键字解析

转载: http://www.cnblogs.com/dolphin0520/p/3799052.html 一.static关键字的用途 在<Java编程思想>P86页有这样一段话: "static方法就是没有this的方法.在static方法内部不能调用非静态方法,反过来是可以的.而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法.这实际上正是static方法的主要用途." 这段话虽然只是说明了static方法的特殊之处,但是可以看出static关键