是否有一个Python JSON编码器可以正常工作?

是否有一个Python JSON编码器可以正常工作?,python,json,Python,Json,我知道在很多情况下这可能是一个愚蠢的问题,但是否存在一个Python JSON编码器,它可以将所有不理解的内容(例如float32、float64、高精度十进制等)转换为字符串 我很难在我的数据结构中进行多层次的深度迭代,以转换所有数据类型json,simplejson和ujson模块对此表示不满。通过将default参数设置为只调用str()的函数,很容易让标准json模块实现您想要的功能关于其参数: import json class MyObject(object): def _

我知道在很多情况下这可能是一个愚蠢的问题,但是否存在一个Python JSON编码器,它可以将所有不理解的内容(例如float32、float64、高精度十进制等)转换为字符串


我很难在我的数据结构中进行多层次的深度迭代,以转换所有数据类型json,simplejson和ujson模块对此表示不满。

通过将
default
参数设置为只调用
str()的函数,很容易让标准
json
模块实现您想要的功能
关于其参数:

import json

class MyObject(object):
    def __init__(self, value):
        self.value = value

    def __str__(self):
        return str(self.value)

print json.dumps(
    {
        'simple_string': 'i encode easily',
        'simple_int': 42,
        'complex': MyObject('this is a test')
    }, default=str, indent=2)
这将为任何不属于以下条件之一的
obj
调用
string(obj)
输入
json
模块能够进行本机编码。上面的例子 结果:

{
  "simple_int": 42, 
  "simple_string": "i encode easily", 
  "complex": "this is a test"
}

通过将
default
参数设置为只对其参数调用
str()

import json

class MyObject(object):
    def __init__(self, value):
        self.value = value

    def __str__(self):
        return str(self.value)

print json.dumps(
    {
        'simple_string': 'i encode easily',
        'simple_int': 42,
        'complex': MyObject('this is a test')
    }, default=str, indent=2)
这将为任何不属于以下条件之一的
obj
调用
string(obj)
输入
json
模块能够进行本机编码。上面的例子 结果:

{
  "simple_int": 42, 
  "simple_string": "i encode easily", 
  "complex": "this is a test"
}

通过将
default
参数设置为只对其参数调用
str()

import json

class MyObject(object):
    def __init__(self, value):
        self.value = value

    def __str__(self):
        return str(self.value)

print json.dumps(
    {
        'simple_string': 'i encode easily',
        'simple_int': 42,
        'complex': MyObject('this is a test')
    }, default=str, indent=2)
这将为任何不属于以下条件之一的
obj
调用
string(obj)
输入
json
模块能够进行本机编码。上面的例子 结果:

{
  "simple_int": 42, 
  "simple_string": "i encode easily", 
  "complex": "this is a test"
}

通过将
default
参数设置为只对其参数调用
str()

import json

class MyObject(object):
    def __init__(self, value):
        self.value = value

    def __str__(self):
        return str(self.value)

print json.dumps(
    {
        'simple_string': 'i encode easily',
        'simple_int': 42,
        'complex': MyObject('this is a test')
    }, default=str, indent=2)
这将为任何不属于以下条件之一的
obj
调用
string(obj)
输入
json
模块能够进行本机编码。上面的例子 结果:

{
  "simple_int": 42, 
  "simple_string": "i encode easily", 
  "complex": "this is a test"
}

你可以试试(我是一个贡献者)

你可以试试(我是一个贡献者)

你可以试试(我是一个贡献者)

你可以试试(我是一个贡献者)

很好。非常感谢。我觉得这应该在文档中更加明确。它在文档的一节中:“default(obj)是一个函数,应该返回obj的可序列化版本或raise TypeError。默认值只会引发TypeError。”
lambda obj:str(obj)
只是
str
json.dumps(…,default=str,indent=2)
非常好。非常感谢。我觉得这应该在文档中更加明确。它在文档的一节中:“default(obj)是一个函数,应该返回obj的可序列化版本或raise TypeError。默认值只会引发TypeError。”
lambda obj:str(obj)
只是
str
json.dumps(…,default=str,indent=2)
非常好。非常感谢。我觉得这应该在文档中更加明确。它在文档的一节中:“default(obj)是一个函数,应该返回obj的可序列化版本或raise TypeError。默认值只会引发TypeError。”
lambda obj:str(obj)
只是
str
json.dumps(…,default=str,indent=2)
非常好。非常感谢。我觉得这应该在文档中更加明确。它在文档的一节中:“default(obj)是一个函数,应该返回obj的可序列化版本或raise TypeError。默认值只会引发TypeError。”
lambda obj:str(obj)
只是
str
json.dumps(…,default=str,indent=2)