Hướng dẫn how do you escape a single quote in sql python? - làm thế nào để bạn thoát khỏi một trích dẫn trong sql python?

Tôi đã thử tất cả các cách thức của các mô -đun Python và chúng có thể trốn thoát quá nhiều hoặc sai cách. Cách tốt nhất bạn tìm thấy để thoát khỏi trích dẫn [", '] trong Python là gì?

user7610

Phù hiệu vàng 23K1212 gold badges114 silver badges137 bronze badges

Khi được hỏi ngày 22 tháng 5 năm 2009 lúc 9:16May 22, 2009 at 9:16

Jonathan Priorjonathan trướcJonathan Prior

5.9347 Huy hiệu vàng28 Huy hiệu bạc26 Huy hiệu đồng7 gold badges28 silver badges26 bronze badges

2

Nếu đó là một phần của truy vấn cơ sở dữ liệu, bạn sẽ có thể sử dụng câu lệnh SQL được tham số hóa.

Cũng như thoát khỏi trích dẫn của bạn, điều này sẽ đối phó với tất cả các nhân vật đặc biệt và sẽ bảo vệ bạn khỏi các cuộc tấn công tiêm SQL.

Samuel Liew ♦

74.5K106 Huy hiệu vàng158 Huy hiệu bạc243 Huy hiệu Đồng106 gold badges158 silver badges243 bronze badges

Đã trả lời ngày 22 tháng 5 năm 2009 lúc 9:30May 22, 2009 at 9:30

David Webbdavid WebbDavid Webb

188K57 Huy hiệu vàng309 Huy hiệu bạc298 Huy hiệu Đồng57 gold badges309 silver badges298 bronze badges

7

Sử dụng json.dumps.

>>> import json
>>> print json.dumps['a"bc']
"a\"bc"

Đã trả lời ngày 18 tháng 2 năm 2013 lúc 6:25Feb 18, 2013 at 6:25

2

Cách dễ dàng và tiêu chuẩn để thoát khỏi chuỗi và chuyển đổi các đối tượng khác thành dạng lập trình, là sử dụng hàm repr[] tích hợp. Nó chuyển đổi một đối tượng thành biểu diễn bạn sẽ cần nhập nó bằng mã thủ công.

E.g.:

s = "I'm happy I am \"here\" now"
print repr[s]
>>  'I\'m happy I am "here" now'

Không có hack kỳ lạ, nó được xây dựng và nó chỉ hoạt động cho hầu hết các mục đích.

Caner

55.5K35 Huy hiệu vàng170 Huy hiệu bạc176 Huy hiệu đồng35 gold badges170 silver badges176 bronze badges

Đã trả lời ngày 3 tháng 12 năm 2012 lúc 3:27Dec 3, 2012 at 3:27

GregdgregdGregD

7457 Huy hiệu bạc15 Huy hiệu Đồng7 silver badges15 bronze badges

3

Nếu sử dụng psycopg2, phương pháp execute[] của nó đã thoát ra khỏi việc thoát khỏi:

cursor.execute["SELECT column FROM table WHERE column=%s AND column2=%s", [value1, value2]]

Lưu ý rằng bạn đang đưa ra hai đối số để thực thi phương thức [chuỗi và tuple], thay vì sử dụng toán tử % của Python để sửa đổi chuỗi.

Trả lời bị đánh cắp từ đây: psycopg2 tương đương với mysqldb.escape_string?

Dan Getz

8.4566 huy hiệu vàng31 Huy hiệu bạc62 Huy hiệu đồng6 gold badges31 silver badges62 bronze badges

Đã trả lời ngày 18 tháng 6 năm 2016 lúc 12:36Jun 18, 2016 at 12:36

ex4ex4ex4

2.1611 Huy hiệu vàng12 Huy hiệu bạc19 Huy hiệu đồng1 gold badge12 silver badges19 bronze badges

Triple Trích dẫn đơn sẽ kết hợp một cách thuận tiện các trích dẫn đơn thường được sử dụng trong các truy vấn SQL:

c.execute['''SELECT sval FROM sdat WHERE instime > NOW[] - INTERVAL '1 days' ORDER BY instime ASC''']

Đã trả lời ngày 30 tháng 1 năm 2018 lúc 23:51Jan 30, 2018 at 23:51

ROYROYRoy

2622 Huy hiệu bạc8 Huy hiệu Đồng2 silver badges8 bronze badges

Đối với một giải pháp cho một vấn đề chung chung hơn, tôi có một chương trình mà tôi cần lưu trữ bất kỳ bộ ký tự nào trong một tệp phẳng, tab được phân định. Rõ ràng, có các tab trong 'bộ' đã gây ra vấn đề.

Thay vì output_f.write [str], tôi đã sử dụng output_f.write [repr [str]], đã giải quyết vấn đề của tôi. Nó là chậm hơn khi đọc, vì tôi cần eval [] đầu vào khi tôi đọc nó, nhưng nhìn chung, nó làm cho mã sạch hơn vì tôi không cần phải kiểm tra các trường hợp bên lề nữa.

Đã trả lời ngày 11 tháng 3 năm 2010 lúc 22:28Mar 11, 2010 at 22:28

1

Trích dẫn ba nhân đôi là tốt nhất để trốn thoát:

string = """This will span across 'single quotes', "double quotes",
and literal EOLs all in the same string."""

Đã trả lời ngày 27 tháng 1 năm 2012 lúc 1:44Jan 27, 2012 at 1:44

1

Đối với trường hợp sử dụng của tôi, tôi đã lưu một đoạn văn vào cơ sở dữ liệu và ở đâu đó trong đoạn văn có thể đã có một số văn bản với một trích dẫn duy nhất [example: Charlie's apple sauce was soggy]

Tôi thấy điều này để hoạt động tốt nhất:

database_cursor.execute['''INSERT INTO books.collection [book_name, book_quoted_text] VALUES ['%s', "%s"]''' % [book_name, page_text.strip[]]]

Bạn sẽ nhận thấy rằng tôi sử dụng

s = "I'm happy I am \"here\" now"
print repr[s]
>>  'I\'m happy I am "here" now'
0 sau khi kết thúc câu lệnh chèn trong
s = "I'm happy I am \"here\" now"
print repr[s]
>>  'I\'m happy I am "here" now'
1

Đã trả lời ngày 16 tháng 5 năm 2019 lúc 0:51May 16, 2019 at 0:51

DataViewsDatAviewsdataviews

1.9995 huy hiệu vàng21 Huy hiệu bạc59 Huy hiệu đồng5 gold badges21 silver badges59 bronze badges

Bài Viết Liên Quan

Chủ Đề