Scripting API Reference (knime.scripting.io)
The knime.scripting.io module is the primary API for interacting with KNIME data inside Python Script and Python View nodes. It is automatically available on the PYTHONPATH — you do not need to install it.
For the full API reference, see Python Scripting API.
Import
python
import knime.scripting.io as knioTables
| Symbol | Description |
|---|---|
knio.input_tables[i] | Read-only input table at port index i (0-based). |
knio.output_tables[i] | Assign a knio.Table or knio.BatchOutputTable to write output. |
knio.Table.from_pandas(df) | Create a KNIME table from a Pandas DataFrame. |
knio.Table.from_pyarrow(table) | Create a KNIME table from a PyArrow Table. |
table.to_pandas() | Convert to Pandas DataFrame. |
table.to_pyarrow() | Convert to PyArrow Table. |
Batches
| Symbol | Description |
|---|---|
knio.BatchOutputTable.create() | Create an empty batch output table. |
input_table.batches() | Returns an iterable of batches. Each batch supports .to_pandas() / .to_pyarrow(). |
batch_output.append(data) | Append a Pandas DataFrame or PyArrow Table as a batch. |
Objects and images
| Symbol | Description |
|---|---|
knio.input_objects[i] | Pickled input object at port index i. |
knio.output_objects[i] | Assign a picklable object to write output. |
knio.output_images[i] | Assign an SVG string or PNG bytes to write an image. |
Flow variables
| Symbol | Description |
|---|---|
knio.flow_variables['name'] | Read or write flow variables as a dictionary. |
Views (Python View node only)
| Symbol | Description |
|---|---|
knio.output_view | Assign the return value of a knio.view_* function. |
knio.view(obj) | Auto-detect format and create a view. |
knio.view_html(html) | View from an HTML string. |
knio.view_svg(svg) | View from an SVG string. |
knio.view_png(data) | View from PNG bytes. |
knio.view_jpeg(data) | View from JPEG bytes. |
knio.view_matplotlib(fig?) | View from an active or given matplotlib figure. |
knio.view_seaborn(fig?) | View from an active or given seaborn figure. |
knio.view_plotly(fig) | View from a Plotly figure. Set custom_data to Row ID for selection sync. |
knio.view_ipy_repr(obj) | View from an object with an IPython _repr*_ function. |
Example: matplotlib
python
import knime.scripting.io as knio
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 5, 6])
knio.output_view = knio.view_matplotlib(fig)Example: Plotly with selection sync
To synchronize row selection between a Plotly chart and other KNIME views, set custom_data to the row index:
python
import knime.scripting.io as knio
import plotly.express as px
df = knio.input_tables[0].to_pandas()
fig = px.scatter(
df,
x="my_x_col",
y="my_y_col",
color="my_label_col",
custom_data=[df.index],
)
knio.output_view = knio.view_plotly(fig)Output images from views
The optional image output port is populated automatically when the view is SVG, PNG, or JPEG, or can be converted to one:
- matplotlib / seaborn: PNG or SVG depending on the
formatargument. - Plotly: requires the
kaleidopackage. - IPython objects: uses
repr_svg,repr_png, orrepr_jpeg(first available). - HTML: set an image representation manually via the
view_htmlcall.
You can also populate knio.output_images[0] directly:
python
import knime.scripting.io as knio
import matplotlib.pyplot as plt
import io
fig, ax = plt.subplots()
ax.bar(["A", "B"], [3, 5])
buf = io.BytesIO()
fig.savefig(buf, format="png")
knio.output_images[0] = buf.getvalue()Jupyter notebook support
| Symbol | Description |
|---|---|
knime.scripting.jupyter.load_notebook(dir, name) | Load a notebook as a Python module. |
knime.scripting.jupyter.print_notebook(dir, name) | Print cell contents to console. |