2017-12-07 10 views
1

誰かが私に手を差し伸べるかもしれないと私のデータベースに問い合わせるのに困っている。 私はので、私はsqlite3のを推測Djangoアプリケーションを使用しています>>私は取得したいと思い、出力は私の出力与えるスコア値Python dict、値を抽出する

b = Answer.objects.get(id = 23) 

です:私が行うとき

<Answer: Answer to questionID '4' : AnswerID '23'> 

を:

b.values 

私は形式の辞書を取得します:

['{ 
    "1)Long descriptive text":Score, 
    "2)Long descriptive text":Score, 
    "3)Long descriptive text":Score, 
    "4)Long descriptive text":Score 
    }'] 
「長い説明のテキスト」例えばので0から100までの整数をbeeingてスコア

:85

[私は、クエリを使用してスコアを抽出する必要がありますが、私はDictのためNormalyそれを を行うために管理することはできませんキー:値]私は[キー]が、ここで私が行う方法がわからないDictのを行うだろう、それ

あなたは私にこれは怪しいDjangoのような場合はそう見えます

+1

どの種類のDBを使用しているのか、そしてDBにアクセスするためにどのようなフレームワークを使用しているのか、 'Answer'はデータベーステーブルか、あなたが書いたクラスですか? – Sam

+0

また、どの出力を達成したいのですか? –

+0

あなたの質問は何とか混乱しています。あなたが知る必要があるよりもずっと多くの情報を私たちに供給していると感じています。 –

答えて

2

あまり手 Thxをあなたに与えることができる:

だからb = Answer.objects.get(id = 23)は本当にtではないあなたが見ているのはstr答えをプリントアウトするときの機能です。あなたが.filterではなく.getを使用したので、あなたはリストであると考えることができるQuerySetではなくオブジェクトを取得します。

基本的に、私はあなたが値を使用しますが、データにアクセスするべきではありません...

b = Answer.objects.get(id=..) 
b.score 

かのようなものを使用すると、他の答えをループしたい場合は疑う:

answers = Answer.objects.filter(...) 
for a in answers: 
    a.score 

.scoreは何ですか、あなたのmodels.pyファイルを見てください - どのようなパラメータがあるかを見てください(score = models.IntegerField()など、次にa.scoreを使用します)

+0

こんにちは、Jmonsさん、私はフィルタとの間にdiffを持っていますが、事はクエストの属性がボディなので、a.bodyとそのa.bodyは私の投稿に書いたものに対応したdictです:['{ 1)長い記述テキスト ":スコア、 " 2)長い記述テキスト ":スコア、 " 3)長い記述テキスト ":スコア、 " 4)長い説明テキスト ":スコア "]スコアは整数と私はそのvaleuを抽出する必要があります – Ben2pop

+0

私はあなたがこの時点でモデルコードを貼り付ける必要があると思う。あなたの "body"は、配列( '[')のように単一の要素( '' 'から終わり' ''へ行く)のように見えます。あなたはfoo.body = somedictをしました。これはstrにキャストされていました..もしそうなら、あなたは戻ってそれをしないでください(これはPythonのdcitsを直列化する方法ではないからです)。そしてjson.dumps (foo)を "body"(あるいは新しいdjangoでもっとうまくいけば、jsonfieldを使って見てください!)...そのようにして、あなたの 'body'は返り値のdictになります。 – Jmons

関連する問題