python 3.6版前后对比dict()
和方法。.to_dict()
from werkzeug.datastructures import ImmutableMultiDict
imd = ImmutableMultiDict([('default', u''), ('required', u'on'), ('name', u'short_text'), ('name', u'another'), ('submit', u'Submit')])
到python3.5
dict(imd)
#output: {'default': [''], 'required': ['on'], 'name': ['short_text', 'another'], 'submit': ['Submit']}
imd.to_dict(flat=false)
#output: {'default': [''], 'required': ['on'], 'name': ['short_text', 'another'], 'submit': ['Submit']}
imd.to_dict(flat=True) # or imd.to_dict()
#output: {'default': '', 'required': 'on', 'name': 'short_text', 'submit': 'Submit'}
因此,
dict(imd) == imd.to_dict(flat=False)
#output: True
从python3.6开始
dict(imd)
#output: {'default': '', 'required': 'on', 'name': 'short_text', 'submit': 'Submit'}
imd.to_dict(flat=false)
#output: {'default': [''], 'required': ['on'], 'name': ['short_text', 'another'], 'submit': ['Submit']}
imd.to_dict(flat=True) # or imd.to_dict()
#output: {'default': '', 'required': 'on', 'name': 'short_text', 'submit': 'Submit'}
因此,
dict(imd) == imd.to_dict(flat=False)
#output: False
使用.to_dict()
withflat=True/False
是一个更安全的选择。