0

ウェブサイトの API からデータを取得し、json.loads(some_data) を使用してデシリアライズしました。Json は、次のような各キーと値の前に「u」を含む辞書を返します。

data = {u'y_coordinate': u'1902125', u'case_number': u'HW301956', u'domestic': False}

次のようにして、Django モデルからオブジェクトをインスタンス化したいと思います。

obj = Model(**data)

ただし、「TypeError: init () キーワードは文字列でなければなりません」というメッセージが表示されるので、問題がキーと値の前の「u」にあるのかどうか疑問に思っていました。オブジェクトを作成するには?

文字に遭遇するたびにデータをループして「u」を取り除く関数を書くことができることは理解していますが、それを行うためのより効率的な方法はありますか?

4

1 に答える 1

0

ディクショナリを反復処理し、キーがunicode.

>>> {key.encode('utf8') if isinstance(key, unicode) else key:value for (key, value) in data.iteritems()}
{'y_coordinate': u'1902125', 'domestic': False, 'case_number': u'HW301956'}
于 2013-06-10T20:56:45.017 に答える