导航

flask数据格式化——flask_restful.fields

Posted on 2021-05-06 09:16  old_dog~  阅读(717)  评论(0)    收藏  举报
  • flask_restful.fields模块

    • marshal方法的使用

      • a  =  {"a":100.99, 'b':200.00,  "c":300 } # 数据a
        b = {"a":fields.Raw,  "b":fields.Raw }  # 定义格式
        print  marshal( a, b , envelope="unname") # a中数据根据b中对应的格式化,找不到对应格式则丢弃。 envelope信封,不影响内部内容
        # OrderedDict([('unname', OrderedDict([('a', 100.99), ('b', 200.0)]))])
    • marshal_with装饰器

      • @marshal_with( b ) # marshal的装饰器形式
        def  fun1():    
        return a
    • ?marshal_with_field装饰器(单个字段的格式化 )___下面说法还需探究

      • @marshal_with_field(  fields.List(fields.Integer) )
        def  fun2():    
        return [100.99, 999.0, "123" ]
        # 数据匹配格式。  
        #(1)[100.99, 999.0, "123" ] 转化为fields.List对象
        #(2)转化后对象子元素转化为fields.Intereger
        # [100, 999, 123]
    • 整个嵌套的~~~~

      • # 这是个嵌套的样式
        def fun4():    
        mfields ={              # 数据格式
        "name":fields.String,  
        "school":{            
        "one":fields.String,            
        "two":fields.String      
                },        
                 "score":fields.List( fields.Integer )    
            }    
             data = {"name":"chenmo",   "one":"school_001", "two":"school_002",  "score":[12.3, "45", 100.00 ]}  # 数据  
             return    marshal( data,    mfields ,  envelope="nested") # 根据对应的key格式化数据

        print  json.dumps( fun4() )  
        # {"nested": {"school": {"two": "school_002", "one": "school_001"}, "score": [12, 45, 100], "name": "chenmo"}}
  • json.dump( ) 了解一下~

  • 这货干了个这个事: 定义数据类型,强制转换!!!!!!!