文档章节

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

testwork
 testwork
发布于 2016/05/05 21:45
字数 246
阅读 97
收藏 2

主要涉及的代码

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
博文 74
码字总数 21048
作品 0
崇明
程序员
私信 提问
python数据存储--JSON

HTML正文存储为两种格式:JSON和CSV。 存储为JSON: 首先利用Requests访问http://seputu.com获取HTML文档: 取每章节 接下来将数据存储为JSON。 python对JSON文件的操作分为编码和解码,通过...

guguobao
08/21
0
0
python --- json模块和pickle模块详解

  json:JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式(用于数据序列化和反序列化)。(适用于多种编程语言,可以与其他编程语言做数据交换)   pickle:...

码农47
2017/08/19
0
0
初学Python——文件操作第三篇

一、引言 什么?有了第二篇文件操作还不够?远远不够!而且在读完第三篇文件操作还是不够。关于文件的操作,后续的学习中将不断学习新的操作方式,使用更加合适的方法。 进入正题,上一篇讲到...

学霸初养成
05/12
0
0
列表--元组--字典--import join

--9-----------Python 列表 list-----------用[]标识----------------------------------------------------------------------------------------------- List(列表) 是 Python 中使用最频......

liapple6
10/28
0
0
RobotFramework-RequestsLibrary中To Json关键字使用中的问题

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

不折腾难受斯基
2015/07/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

layer

Layui Layer在open弹出层中异步加载数据和form表单radio、checkbox、select不渲染,不可点击的解决办法 layer 实现弹窗提交信息 function confirmUpdateAward(i) { layer.open({ ...

mickelfeng
57分钟前
0
0
Spring boot中如何获取profiles环境

  实现ApplicationContextAware @Componentpublic class QiNiuPropertiesConfig implements ApplicationContextAware { /// 获取当前环境public String getActiveProfile() { ret......

writeademo
今天
3
0
机器学习中的End-to-End到底是怎么回事?

简单讲就是,Input--->系统(这里指神经网络)--->Output(直接给出输入,NN神经网络就给出结果,一气喝成!!!) 借用一段对话:(http://dy.163.com/v2/article/detail/C3J6F2NJ0511AQHO....

火力全開
今天
2
0
maven多个模块只编译并且只打包指定的模块

在多module的maven项目中,如果每次打包整个工程显得有些冗余和笨重。 命令:mvn clean package install -pl 模块的名称 -am

lifes77
今天
0
0
eosjs中文手册【2.0】

访问地址:eosjs 2.0 中文手册 - 汇智网

汇智网教程
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部