使用allow_nan = True的Python 3.6 json.dumps ValueError

时间:2018-10-17 07:23:02

标签: python json

我目前正致力于从python 2.7到python 3.6

有效的Python 2.7代码

json.dump(data, ignore_nan=True)

Python 3.6代码

json.dumps(charts, allow_nan=False)

错误消息:

{ValueError}Out of range float values are not JSON complaint

我应该如何忽略nan值来转储信息?

示例:

 "series": [
                {
                    "data": [
                        {
                            "value": 60.6,
                            "x": 1538431200000.0
                        },
                        {
                            "value": 80.6,
                            "x": 1538434800000.0
                        },

2 个答案:

答案 0 :(得分:0)

allow_nan=True应该可以解决问题。我对allow_nan选项没有任何问题。

>>> a = [{"k": 1, "v": float('nan')}, {"k": 2, "v": float('inf')}]
>>> a
[{'k': 1, 'v': nan}, {'k': 2, 'v': inf}]
>>> import json
>>> json.dumps(a)
'[{"k": 1, "v": NaN}, {"k": 2, "v": Infinity}]'
>>> import sys
>>> print (sys.version)
3.6.6 (default, Jul 19 2018, 14:25:17) 
[GCC 8.1.1 20180712 (Red Hat 8.1.1-5)]

答案 1 :(得分:0)

尝试了许多事情后,其工作原理如下:

import simplejson
simplejson.dumps(data, ignore_nan=True)