2012-03-13 14 views
8

私はMySQLdbを初めて使用しています。 MySQLに格納されている定義済みのデータベースから値を読み取る必要があります。私の問題は、値が集められたときに、タプル形式であり、文字列形式ではないということです。だから私の質問:文字列にタプルを変換する方法はありますか?以下はMySQLdbをタプルからPythonの文字列に変換する

import MySQLdb 

#get value from database 
conn = MySQLdb.connect("localhost", "root", "123", "book") 
cursor = conn.cursor() 
cursor.execute("SELECT koc FROM entries") 
Koc_pre = str(cursor.fetchone()) 

#create a input form by Django and assign pre-defined value 
class Inp(forms.Form): 
    Koc = forms.FloatField(required=True,label=mark_safe('K<sub>OC</sub> (mL/g OC)'),initial=Koc_pre) 

#write out this input form 
class InputPage(webapp.RequestHandler): 
    def get(self): 
     html = str(Inp()) 
     self.response.out.write(html) 

私のコードの詳細については、出力は、タプル形式で "コチ=( '5'、)" ですが、私は "= 5 KOC" を望んでいます。だから誰も私にいくつかの提案やリファレンスブックを私はチェックする必要があります与えることができますか?

ありがとうございます!

答えて

18

一度に1つの値を取得するだけの場合(つまり、cursor.fetchone()を使用して1つの列を取得する場合)、タプルの最初の要素を取得できるようにコードを変更できます。

Koc_pre = str(cursor.fetchone()[0]) 
+0

ありがとうございます!複数の値を取得する必要がある場合(一度に1つの行を取ります) –

+1

残念ながら、これを処理する唯一の方法は、タプルに値を手動で割り当てることです( 'id = tuple [0]'、 'col1 =タプル[1]'など)。私はクエリを提出し、タプルを返す一般的なMySQLコマンド関数を書くことをお勧めします。そうすれば、必要なところで返されたタプルをより簡単に扱うことができます。 –

+0

ありがとうございます。また、お勧めの本のPython-MySQLプロジェクトですか? –

関連する問題