lkml Python LookML Parser

1.3.7 · active · verified Sun Apr 12

lkml is a speedy LookML parser and serializer implemented in pure Python. It parses LookML strings into Python dictionaries and serializes Python dictionaries back into LookML strings. The library is actively maintained with frequent minor releases to support new LookML syntax and improve parsing/serialization accuracy.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to parse a LookML string into a Python dictionary using `lkml.load()`, modify the resulting dictionary, and then serialize it back into a LookML string using `lkml.dump()`. This mirrors the common pattern for programmatic LookML manipulation.

import lkml

lookml_content = '''
view: users {
  sql_table_name: `analytics.users`;;
  dimension: id {
    primary_key: yes
    type: number
    sql: ${TABLE}.id ;;
  }
}
'''

# Parse LookML to a Python dictionary
parsed_lookml = lkml.load(lookml_content)
print("Parsed LookML:", parsed_lookml)

# Modify the dictionary (e.g., change dimension type)
for view in parsed_lookml.get('views', []):
    if view.get('name') == 'users':
        for dimension in view.get('dimensions', []):
            if dimension.get('name') == 'id':
                dimension['type'] = 'string'

# Serialize the Python dictionary back to LookML
modified_lookml = lkml.dump(parsed_lookml)
print("\nModified LookML:\n", modified_lookml)

view raw JSON →