相关疑难解决方法(0)

如何使用点"." 访问字典成员?

如何通过点"."访问Python字典成员?

例如,mydict['val']我不想写作,而是写作mydict.val.

此外,我想以这种方式访问​​嵌套的dicts.例如

mydict.mydict2.val 
Run Code Online (Sandbox Code Playgroud)

会参考

mydict = { 'mydict2': { 'val': ... } }
Run Code Online (Sandbox Code Playgroud)

python syntax dictionary nested

230
推荐指数
17
解决办法
13万
查看次数

使用常规编码器使对象JSON可序列化

JSON序列化自定义非可序列化对象的常规方法是子类化json.JSONEncoder,然后将自定义编码器传递给转储.

它通常看起来像这样:

class CustomEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, foo):
            return obj.to_json()

        return json.JSONEncoder.default(self, obj)

print json.dumps(obj, cls = CustomEncoder)
Run Code Online (Sandbox Code Playgroud)

我正在尝试做的是使用默认编码器进行序列化.我环顾四周但找不到任何东西.我的想法是编码器会看到一些字段来确定json编码.类似的东西__str__.也许是一个__json__领域.在python中有这样的东西吗?

我想制作一个模块的类,我正在使用JSON序列化给使用该软件包的每个人,而不必担心实现他们自己的[普通]自定义编码器.

python serialization json monkeypatching

59
推荐指数
3
解决办法
6万
查看次数

是否最好返回一个匿名类或一个对象用作'struct'?

考虑到内存使用,时钟周期或良好的pythonic风格,最好这样做:

def func():
    class A:
       x = 10
       y = 20
    return A
Run Code Online (Sandbox Code Playgroud)

或这个

def func():
    o = object()
    o.x = 10
    o.y = 20
    return o
Run Code Online (Sandbox Code Playgroud)

或者是其他东西?我不想返回字典,因为我不喜欢使用方括号.

python class object

1
推荐指数
1
解决办法
396
查看次数