sqlparse: A Non-Validating SQL Parser for Python
raw JSON → 0.5.5 verified Tue May 12 auth: no python install: verified quickstart: verified
sqlparse is a non-validating SQL parser for Python, providing support for parsing, splitting, and formatting SQL statements. The current version is 0.5.5, released on March 28, 2026, with a release cadence of approximately every 6 months.
pip install sqlparse Common errors
error ModuleNotFoundError: No module named 'sqlparse' ↓
cause The 'sqlparse' library has not been installed in the current Python environment.
fix
pip install sqlparse
error TypeError: format() got an unexpected keyword argument 'options' ↓
cause The `sqlparse.format` function expects formatting options as direct keyword arguments, not as a dictionary passed via an 'options' parameter.
fix
Pass formatting options directly as keyword arguments, for example:
sqlparse.format(sql_string, reindent=True, keyword_case='upper'). error AttributeError: 'Token' object has no attribute 'tokens' ↓
cause When iterating through the tokens of a parsed SQL statement, not all tokens are `TokenList` (group) objects; simple `Token` objects do not have a `tokens` attribute.
fix
Check if a token is a group using
token.is_group before attempting to access its tokens attribute or iterating over it. For example:
import sqlparse
sql = 'SELECT * FROM foo;'
parsed = sqlparse.parse(sql)[0]
for token in parsed.tokens:
if token.is_group:
print(f"Group: {token.normalized}")
for subtoken in token.tokens:
print(f" Subtoken: {subtoken.normalized}")
else:
print(f"Token: {token.normalized}") Warnings
breaking Ensure that sqlparse is installed in your environment to avoid ImportError. ↓
fix Install sqlparse using pip: pip install sqlparse
Install compatibility verified last tested: 2026-05-12
python os / libc status wheel install import disk
3.10 alpine (musl) - - 0.03s 18.1M
3.10 slim (glibc) - - 0.02s 19M
3.11 alpine (musl) - - 0.04s 20.0M
3.11 slim (glibc) - - 0.04s 21M
3.12 alpine (musl) - - 0.04s 11.9M
3.12 slim (glibc) - - 0.03s 12M
3.13 alpine (musl) - - 0.03s 11.6M
3.13 slim (glibc) - - 0.03s 12M
3.9 alpine (musl) - - 0.03s 17.6M
3.9 slim (glibc) - - 0.02s 18M
Imports
- sqlparse
import sqlparse
Quickstart verified last tested: 2026-04-23
import sqlparse
# Split a string containing two SQL statements:
raw = 'SELECT * FROM foo; SELECT * FROM bar;'
statements = sqlparse.split(raw)
# Format the first statement and print it out:
first = statements[0]
print(sqlparse.format(first, reindent=True, keyword_case='upper'))
# Parsing a SQL statement:
parsed = sqlparse.parse('SELECT * FROM foo')[0]
print(parsed.tokens)