python中的动态类型转换

use*_*636 12 python

我有2个词:

dicts1 = {'field1':'', 'field2':1, 'field3':1.2}
dicts2 = {'field1':123, 'field2':123, 'field3':'123'}
Run Code Online (Sandbox Code Playgroud)

我想将每个值转换dict2为与相应值相同的类型dict1,这是最快的pythonic方式吗?

Jon*_*nts 22

假设它们是兼容的类型:

for k, v in dicts1.iteritems():
    try:
        dicts2[k] =  type(v)(dicts2[k])
    except (TypeError, ValueError) as e:
        pass # types not compatible
    except KeyError as e:
        pass # No matching key in dict
Run Code Online (Sandbox Code Playgroud)