文档章节

python的json模块,针对decimal类型直接dumps报错

testwork
 testwork
发布于 2016/05/05 21:45
字数 246
阅读 86
收藏 2
点赞 1
评论 0

主要涉及的代码

def _iterencode(o, _current_indent_level):
    if isinstance(o, basestring):
        yield _encoder(o)
    elif o is None:
        yield 'null'
    elif o is True:
        yield 'true'
    elif o is False:
        yield 'false'
    elif isinstance(o, (int, long)):
        yield str(o)
    elif isinstance(o, float):
        yield _floatstr(o)
    elif isinstance(o, decimal):
        #support decimal type
        yield str(float(o))
    elif isinstance(o, (list, tuple)):
        for chunk in _iterencode_list(o, _current_indent_level):
            yield chunk
    elif isinstance(o, dict):
        for chunk in _iterencode_dict(o, _current_indent_level):
            yield chunk
    else:
        if markers is not None:
            markerid = id(o)
            if markerid in markers:
                raise ValueError("Circular reference detected")
            markers[markerid] = o
        o = _default(o)
        for chunk in _iterencode(o, _current_indent_level):
            yield chunk
        if markers is not None:
            del markers[markerid]

return _iterencode


但是必须要强制走 py的函数,默认是走_json.c封装的模块

或者使用python-cjson替换python带的默认json模块

单独修改 c 源代码. 

增加对decimal类型的直接 dumps 

不然,需要对所有decimal类型进行float转换.

import decimal

import json 

obj['abc']=decimal.Decimal(100.00012)

josn.dumps(obj) 

代码会提示错误. 

需要针对 类型转换为 float 才能json转码. 

...

© 著作权归作者所有

共有 人打赏支持
testwork
粉丝 4
博文 70
码字总数 20258
作品 0
崇明
程序员
RobotFramework-RequestsLibrary中To Json关键字使用中的问题

To Json的关键字主要功能是将Python字典和Json格式进行互相转换, 参数说明: content 被转换的对象 pretty_print 默认是false,将Content 从Json转换为字典类型,如果定义为true,将Content...

不折腾难受斯基
2015/07/23
0
0
JS 解析 JSON 及 XML

什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3r...

quanpower
2013/05/15
0
0
Python调用RESTful API时踩到的各种坑

开篇首先推荐一款REST接口调试的利器,Chrome的扩展程序Advanced REST client,功能十分齐全!使用它来模拟访问接口可以获取到详尽的信息,借助它排查接口是否可用。 问题1:curl访问API成功...

alanlqc
2013/09/03
0
2
学习笔记(11月13日)--json的使用

五周一次课(11月13日) 一、json的使用 Json简介:Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式。Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式。...

wanyang_wanyang
06/26
0
0
Python3中json的操纵

在python中提供了标准库json将基本类型的数据转化成json格式,但是在涉及到自定义类型时需要扩展或者复写Encoder(Decoder)来实现,默认情况下json会抛出"TypeErro: xxx is not json serial...

gangzz
2014/02/16
0
0
Python用json模块存储数据

JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。JSON的数据格式其实就是python里面的字典格式; Json 模块提供了四个方法: dumps、dump、loads、load 1、使用...

飞天小橘子
03/28
0
0
Python入门(十二) Json模块的使用

至于Json是什么,可以在网上搜一下就知道。 现在的网络开发中,很多时候数据的传递都是采用Json格式。相比于XML,Json在传递同样的数据量的前提下,比XML减少大概30%的空间。先看一个最简单的...

kaedehao
2015/08/16
0
0
python基础---常用模块(未完待续)

re模块(正则模块) 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。或者说:正则就是用来描述一类事物的规则。(在Python中)它内嵌在Python中...

迟到的栋子
07/01
0
0
Python之0.35+0.3+0.35不等于1

  在Python3中,数值类型有int、float、bool、complex四种类型。float型即为浮点型,用来表示实数。然而,笔者在实际运用中,却发现事实:      这是不是有点不可思议?然而我们还可以...

jclian91
2017/10/28
0
0
[雪峰磁针石博客]python3快速入门教程9重要的标准库-高级篇

[雪峰磁针石博客]python3快速入门教程 输出格式 reprlib模块为大型的或深度嵌套的容器提供了缩写显示的repr(): pprint提供显示更好的print。 textwrap模块格式化文本段落以适应设定的屏宽: l...

Python测试开发人工智能
06/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

中国开始生产自主设计x86 CPU,由AMD授权

7 月 10 日报道,美媒称,中国正试图摆脱对美国公司的依赖并开发自己的芯片。据报道,中国制造商天津海光先进技术投资有限公司开始生产中国自主设计的“禅定”x86 中央处理器(CPU)。 7 月 ...

六库科技
9分钟前
0
0
Vue.js-自定义事件例子

自定义组件的 v-model 2.2.0+ 新增 一个组件上的 v-model 默认会利用名为 value 的 prop 和名为 input 的事件,但是像单选框、复选框等类型的输入控件可能会将 value 特性用于不同的目的。m...

tianyawhl
9分钟前
0
0
mybatis中获取sqlSession的源码分析

0 SqlSessionFactoryBuilder类 SqlSessionFactoryBuilder sqlSessionFacotory=SqlSessionFactoryBuilder().build(reader) public SqlSessionFactory build(Reader reader) { return build(re......

writeademo
10分钟前
0
0
RobotThread.cpp

#include "RobotThread.h"RobotThread::RobotThread(int argc, char** pArgv, const char * topic) :m_Init_argc(argc), m_pInit_argv(pArgv), m_topic(topic){/** ......

itfanr
12分钟前
0
0
防御ddos攻击的常见方法

DDoS攻击是一种特殊形式的拒绝服务攻击。它利用多台已经被攻击者所控制的机器对某一台单机发起攻击,在带宽相对的情况下,被攻击的主机很容易失去反应能力。分布式拒绝服务攻击(DDoS) 是一种...

上树的熊
12分钟前
0
0
Vue全家桶问题合集(很多eslint规范问题)

自己使用Vue全家桶问题合集(很多eslint规范问题) 遇到很多问题一一道来。 1.vue报错 Do not use built-in or reserved HTML elements as component id:header 组件,不能和html标签重复 he...

kisshua
14分钟前
0
0
Spring框架中的设计模式(四)​

Spring框架中的设计模式(四) 本文是Spring框架中使用的设计模式第四篇。本文将在此呈现出新的3种模式。一开始,我们会讨论2种结构模式:适配器和装饰器。在第三部分和最后一部分,我们将讨...

瑞查德-Jack
19分钟前
0
0
如何玩转小程序+公众号?手把手教你JeeWx小程序CMS与公众号关联

随着微信小程序新功能、新入口的不断更新,小程序的商业价值逐步增强,特别是小程序与公众号的深度融合,已经让小程序成为各行业新的营销渠道。Jeewx平台专注小程序的开发,逐步完善小程序生...

Jeecg
25分钟前
0
0
IDEA开发vue.js卡顿

由于新项目使用了vue.js。在执行cnpm install后会在node_modules这个文件下面生成vue的相关依赖文件,这个时候当执行npm run dev命令时,会导致IDEA出现卡死的问题。 解决办法:在idea中设置...

落雪飞声
27分钟前
0
0
js模块化编程之彻底弄懂CommonJS和AMD/CMD!

先回答我:为什么模块很重要? 答:因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。 但是,这样做有一个前提,那就是大家必须以同样的方式编写模块,否则你...

娇娇jojojo
27分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部