Hướng dẫn python sql query to array - truy vấn python sql tới mảng

Tôi có một danh sách trong Python.

article_ids = [1,2,3,4,5,6]

Tôi cần sử dụng danh sách này trong câu lệnh SQL như thế này:

SELECT id FROM table WHERE article_id IN [article_ids]

Làm thế nào tôi có thể cung cấp danh sách này cho điều khoản

SELECT id FROM table WHERE article_id IN [article_ids]
5 của tôi?

Tôi đã thử một số cách mà tôi googled, nhưng tôi không thể tìm ra nó.

>> print ids_list
    placeholders= ', '.join['?'*len[ids_list]]  # "?, ?, ?, ... ?"
    query = 'SELECT article_id FROM article_author_institution WHERE institution_id IN [{}]'.format[placeholders]
    print query
    cursor.execute[query, ids_list]

Thông báo lỗi tôi nhận được:

SELECT article_id FROM article_author_institution WHERE institution_id IN [?]
     query = query % db.literal[args]
    TypeError: not all arguments converted during string formatting

Ví dụ:

ids_list = [9,10]

placeholders= ', '.join['%'*len[ids_list]]  # "?, ?, ?, ... ?"
query = 'SELECT aid FROM article_author_institution WHERE instid IN [{}]'.format[placeholders]
print query
cursor.execute[query, ids_list]

Thông báo đầu ra và lỗi là:

SELECT aid FROM article_author_institution WHERE instid IN [%, %]
Traceback [most recent call last]:
  File "deneme3.py", line 11, in 
    cursor.execute[query, ids_list]
  File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 159, in execute
    query = query % db.literal[args]
ValueError: unsupported format character ',' [0x2c] at index 61

Khi xử lý các truy vấn cơ sở dữ liệu, chúng tôi sử dụng vòng lặp để truy cập vào từng bản ghi và xử lý nó tại một thời điểm. Trong một số trường hợp, tốt hơn là đối phó với cơ sở dữ liệu dẫn đến một biến vì vậy chúng tôi không cần truy vấn lại. Đối tượng danh sách Python cho phép chúng tôi lưu trữ kết quả truy vấn SQL một cách dễ dàng vì nó cho phép trùng lặp và cho phép thay đổi.

Bài đăng này là phần tiếp theo của bài viết của Viết Viết một danh sách cho CSV File. Trong trường hợp này, chúng tôi đang truy vấn cơ sở dữ liệu và tải kết quả vào một số đối tượng Python như danh sách, tuple và từ điển.

Lưu ý: Chúng tôi sẽ bỏ qua môi trường ảo .. [MySQL Ex. Tại đây] .. nhưng bạn nên sử dụng môi trường ảo cho tất cả các dự án của bạn.: We’re going to skip the virtual environment.. [MySQL Ex. Here] ..but it is recommended to use a virtual environment for all your projects.

Môi trường Python kết nối với MySQL

Bạn nên quen thuộc với việc tạo và kết nối với cơ sở dữ liệu MySQL. Dưới đây là một số mã mẫu nhanh để cài đặt trong môi trường Python mới.

1. Kích hoạt môi trường activate the environment

.\myenv\Scripts\activate  [windows]

source /myenv/bin/activate  [linux]

2. Cài đặt trình điều khiển MySQL

pip install mysql-connector-python

Sử dụng ví dụ sau để kết nối với cơ sở dữ liệu MySQL localhost.

import mysql.connector

conn = mysql.connector.connect[
    host="localhost",
    database="somedbname",
    user="myuser",
    password="goodpasswd" ]

Danh sách Python là gì []

Danh sách tương tự như một mảng trong các ngôn ngữ khác và nó được lập chỉ mục bắt đầu 0. Danh sách có thể chứa các chuỗi, số và đối tượng, đây là một số ví dụ chuỗi đơn giản.

string = []   ## New empty List
string1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
string2 = ['Brazil', 'Panama', 'Canada', 'India', 'Decentraland']
number = [2,3.6,7,-23,99]  ## can contain decimal and negative numbers
together = string1[0:2] + string2[2:5] + number[2:4]  ## concatenate lists

print[string1[3]]    ## get just 1 value
print[string2[4]]
print[string1[2:5]]  ## Range: get values from index 2 -> 5
print[number[1:5]]
print[together]      Values from all 3 in 1 list

string1[:] = []  ## clear the list

Nối vào danh sách []

SELECT id FROM table WHERE article_id IN [article_ids]
0

Bảng và truy vấn MySQL

Đối với mẫu này, tôi đã tạo một bảng có tên là My Myusers, bao gồm tên người dùng, họ và thành phố họ làm việc. Trong ví dụ này, chúng tôi đang sử dụng con trỏ và sau đó truy vấn bảng này cho bản ghi đầu tiên [DB Tales Com] và Sau đó, tất cả chúng. Hãy nhớ rằng Python đang trả lại một tuple [] cho một bản ghi nhưng sau đó một danh sách có nhiều bộ dữ liệu có chứa dữ liệu của chúng tôi, chúng tôi cũng đang truy vấn 3 trường từ cơ sở dữ liệu.

SELECT id FROM table WHERE article_id IN [article_ids]
1

Hãy nói rằng chúng tôi chỉ quan tâm đến một danh sách tên cuối cùng và chúng tôi muốn nó được lưu trữ trong một danh sách duy nhất. Chúng ta có thể tạo một danh sách trống và lặp lại thông qua tuple [] được trả về bởi con trỏ.

SELECT id FROM table WHERE article_id IN [article_ids]
2

Hãy nhớ rằng chúng tôi chỉ chọn một trường trong truy vấn. Nếu có nhiều hơn 1 trường, chẳng hạn như tên đầu tiên và tên cuối cùng, bạn sẽ kết thúc với một danh sách chứa tất cả các trường.

MySQL to Python Danh sách [] & Dictionary {}

Một tùy chọn khác để xem xét là sử dụng cài đặt con trỏ từ điển để trả về từ điển {} với các phím và sau đó chúng tôi kết thúc chỉ với các giá trị từ truy vấn. Sau đó, chúng tôi có thể lặp lại thông qua chúng bằng cách sử dụng các giá trị trường từ truy vấn của chúng tôi.

SELECT id FROM table WHERE article_id IN [article_ids]
3

Cuối cùng, con trỏ có thể trả lại các bản ghi dưới dạng từ điển Key, tất cả được bao gồm trong một danh sách. Mỗi bản ghi là từ điển riêng của nó với khóa được đặt tên theo tên trường cơ sở dữ liệu.

SELECT id FROM table WHERE article_id IN [article_ids]
4

Làm thế nào để bạn vượt qua một danh sách các chuỗi trong truy vấn SQL trong Python?

Làm thế nào để chuyển một danh sách python các chuỗi cho truy vấn SQL, chẳng hạn như chọn * từ bảng trong đó tên trong [name_from_python_list] trong đó tên_from_python_list là dấu phẩy phân tách các chuỗi khỏi danh sách python?Đang làm ','.Tham gia [Tên cho tên trong name_list] đưa ra tất cả các tên trong danh sách dưới dạng chuỗi, tức là.select * from table where name in [names_from_python_list] where names_from_python_list is comma separated strings from python list? Doing ','. join[name for name in name_list] gives all the names in the list as a string i.e.

Làm thế nào để bạn lưu trữ một truy vấn dẫn đến một biến trong Python?

Fetchall [] lấy tất cả các kết quả từ truy vấn của bạn, chúng tôi sẽ đặt chúng vào một biến có tên là hàng. Sau đó chúng tôi tạo một trình lặp [điều bạn đã cố gắng làm với vòng lặp trong khi] bằng cách làm hàng theo hàng. Then we create a iterator [the thing you tried to do with the while loop] by doing for row in rows .

Làm cách nào để truy vấn SQL trong Python?

Truy vấn SQL trong Python..
Bước 1: Nhập SQLalchemy và Gandas.Hãy bắt đầu với việc nhập thư viện SQLalchemy.....
Bước 2: Tạo động cơ SQL.Chúng tôi tạo một công cụ SQL bằng lệnh tạo ra một lớp mới '.....
Bước 3 - Chạy truy vấn bằng cách sử dụng các câu lệnh SQL.....
Bước 4 - Viết cho DB.....
Bước 5 - Tạo một bảng trong db ..

Bài Viết Liên Quan

Chủ Đề