2017-05-24 7 views
0

私は、UnicodeとしてフォーマットされたPython辞書である入力データをいくつか持っています。このようなもの:ユニコード形式のPython辞書を正しくフォーマットするにはどうすればいいですか?

Input = {u'city': u'London', u'offer_type': u'3'} 

そして、辞書の値を再フォーマットできるスクリプトを作成する必要があります。したがって、値が整数の場合、 "offer_type"の場合のように整数に設定されます。値は "city"のような文字列で、文字列として設定されます。これは、str()int()の関数を使って簡単に行うことができます。

しかし、問題は、入力データが変わる可能性があるため、キーが異なる可能性があり、それらのキーに関連付けられた値も異なる可能性があるということです。ですから、ユニコード値が数字か文字列かどうかを自動的に区別して再フォーマットする必要があります。

私の最初のアイデアは、それぞれの値をとり、それらを整数に変換しようとしていました。エラーメッセージを取得したら、それを文字列に変換してみます。しかし、これは全くpythonicではない、私はパフォーマンスについて疑問を抱いています。

は、ありがとう アルバロ・

+0

なぜ "という文字列に変換" してみてください?私は整数変換の必要性を理解することができますが、 "内部使用"のためには、ユニコードを使用する方法があります(ユニコードサンドイッチパターン参照:プログラムの入力ですべてのバイト文字列をデコードしてプログラムの出力でエンコードし、あなたのプログラム内でユニコードを使用する)。 –

答えて

1

あなたは、これは

Output = {} for key in Input.keys(): Output[str(key)] = int(Input[key]) if Input[key].isdigit() else str(Input[key]) print Output

関連する問題