2017-10-07 12 views
1

ビットはおそらく解決しやすいと思われますが、私が見つけたすべての例では、均一なキー:値のペアについて話しています。浮動小数点型を混在型データーベースに変換する

私は混合値(文字列や山車)を含む辞書を持っている、そしてすべての山車が、それ以外の文字列が保持され、intに変換する必要があります:私が達成したい何

は次のとおりです。

例:

d = {"key1":"something","key2":200.0, "key3":"another string", "key4":2017.0} 

になる必要があります。

{"key1":"something","key2":200, "key3":"another string", "key4":2017} 

私はこれを達成するための最良の方法だろうどのような運

d = {k: int(v) if float(v) else v for k, v in d.items()} 

いくつかのバリエーションでは、このような何かをしようとしたが、 ?

答えて

3

あなたif float(v)vがfloatであるかどうかをチェックしません:floatにvを変換した結果のtruthinessがTrueある場合にのみチェックします。ただし、float(v)が例外を発生させた場合、例外はではなく、になります。

{k: int(v) if isinstance(v, float) else v for k, v in d.items()}

のように辞書を生成します:

>>> {k: int(v) if isinstance(v, float) else v for k, v in d.items()} 
{'key2': 200, 'key4': 2017, 'key1': 'something', 'key3': 'another string'} 
あなたは オブジェクトが特定のタイプを持っているかどうかを確認するためにisinstance(..)を使用することができます

関連する問題