Skip to content

relationalai.std.as_rows()

as_rows(data: list[tuple|dict|int|float|str]) -> Rows

Converts a list of data to a Rows object. Provides a way to pass data from Python to the model without having to define a Type or use a dynamic rule or query context.

NameTypeDescription
datalist[tuple|dict|int|float|str]The data to convert to a Rows object. If data is a list of tuples or dictionaries, then each tuple must have the same length and each dictionary must have the same keys.

A Rows object.

Use as_rows() to convert a list of data to a Rows object:

import relationalai as rai
from relationalai.std import as_rows
# =====
# SETUP
# =====
model = rai.Model("MyModel")
Company = model.Type("Company")
Person = model.Type("Person")
# =======
# EXAMPLE
# =======
# Define a Rows object from a list of dictionaries
data_row = as_rows([
{"id": 1, "name": "Alice", "age": 30},
{"id": 2, "name": "Bob", "age": 45},
])
# Use data_rows to define Person objects in the model.
with model.rule():
Person.add(id=data_row.id).set(name=data_row.name, age=data_row.age)
# Query the data
with model.query() as select:
person = Person()
response = select(person.id, person.name, person.age)
print(response.results)
# id name age
# 0 1 Alice 30
# 1 2 Bob 45

You may also use as_rows() to define a Rows object from a list of tuples:

# Declare a Company type.
Company = model.Type("Company")
# Define Company objects a Rows object.
with model.rule():
data_rows = as_rows([(1, "RelationalAI"), (2, "Snowflake")])
Company.add(id=data_rows[0]).set(name=data_rows[1])
# Or, alternatively:
# id, name = data_rows
# Company.add(id=id).set(name=name)
# Query the data
with model.query() as select:
company = Company()
response = select(company.id, company.name)
print(response.results)
# id name
# 0 1 RelationalAI
# 1 2 Snowflake