2012-03-13 28 views
8

Tôi mới dùng MySQLdb. Tôi cần phải đọc các giá trị từ một cơ sở dữ liệu được xác định trước được lưu trữ trong MySQL. Vấn đề của tôi là khi các giá trị được thu thập, chúng có định dạng tuple, không phải định dạng chuỗi. Vì vậy, câu hỏi của tôi: Có cách nào để chuyển đổi tuple thành chuỗi?Chuyển đổi MySQLdb trả về từ tuple thành chuỗi trong Python

Dưới đây là các chi tiết của mã của tôi

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) 

Đầu ra là ở định dạng tuple "Koc = ('5',)", nhưng tôi muốn "KOC = 5". Vì vậy, bất cứ ai có thể cho tôi một số gợi ý hoặc cuốn sách tham khảo tôi nên kiểm tra?

Cảm ơn trước!

Trả lời

18

Nếu bạn chỉ định lấy một giá trị tại một thời điểm (tức là nhận một cột bằng cách sử dụng cursor.fetchone()), thì bạn chỉ có thể thay đổi mã của mình để bạn lấy phần tử đầu tiên trong bộ.

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

Cảm ơn bạn! Nếu tôi cần truy xuất nhiều hơn một giá trị (tôi có thể lấy một hàng tại một thời điểm)? –

+1

Thật không may, cách duy nhất để giải quyết vấn đề đó là gán các giá trị bằng tay cho bộ tuple ('id = tuple [0]', 'col1 = tuple [1]', v.v.). Tôi khuyên bạn nên viết một hàm lệnh chung của MySQL để gửi truy vấn và trả về một bộ tuple. Bằng cách đó bạn có thể đối phó với các tuple trở lại dễ dàng hơn, nơi bạn cần. –

+0

Cảm ơn bạn. Ngoài ra bất kỳ cuốn sách đề nghị Python-MySQL dự án? –

Các vấn đề liên quan