0

Djangoでは、を使用して選択フィールドからいくつかの値を取得しているrequest.POST.getlist('tags')ため、この情報をMySQLに保存すると、次のようになりますu"['literature']"。この情報を格納するために別のテーブルを使用したくないので、これはかなり合理的であり、さらに望ましいと思います。明らかに、問題は、その情報を取得しようとすると発生します。これは、予想どおり、次のようになるためです。

u'['
u'u'
u"'"
u'l'
u'i'
u't'
u'e'
.
.
.

(たとえば、このタグが文献であると想定します)。

このUnicodeオブジェクトをPythonリストに変換するにはどうすればよいですか?より良いアプローチはありますか?

前もって感謝します

4

3 に答える 3

2

簡単な答え:別のテーブルを作成します。

データベースは特定の方法で使用されるように設計されていますが、なぜ意図されていない方法で情報を保存するように強制しようとするのでしょうか。

これには他の解決策もありますが、最善の答えは、意図したとおりにデータベースを使用することです。長期的にはより簡単になります。

于 2012-04-27T15:13:58.827 に答える
1

json書き込み前にJSONに変換し、読み取り後にJSONから変換するために使用します。または、実際のいくつかの実装の1つを使用しますJSONField

于 2012-04-27T15:12:49.440 に答える
1

これは役に立ちますか?

>>> import ast
>>> lst = ast.literal_eval(u"['literature']")
>>> lst
['literature']
>>> isinstance(lst, list)
True

しかし、より良いアプローチは、文字列として保存する前にリストを適切にシリアル化することです。既存のpickle実装の1つであるjsonを使用するか、独自の実装をロールすることができます(ジェネリックである必要はないため、"SENTINAL".join(list)....のような単純なワンライナーである可能性がありますが、後者をお勧めします)

于 2012-04-27T15:22:14.923 に答える