community.general.to_prettytable filter – Format a list of dictionaries as an ASCII table
Note
This filter plugin is part of the community.general collection (version 10.7.5).
You might already have this collection installed if you are using the ansible package.
It is not included in ansible-core.
To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install community.general.
You need further requirements to be able to use this filter plugin,
see Requirements for details.
To use it in a playbook, specify: community.general.to_prettytable.
New in community.general 10.7.0
Synopsis
- This filter takes a list of dictionaries and formats it as an ASCII table using the prettytable Python library. 
Requirements
The below requirements are needed on the local controller node that executes this filter.
- prettytable 
Input
This describes the input of the filter, the value before | community.general.to_prettytable.
| Parameter | Comments | 
|---|---|
| A list of dictionaries to format. | 
Keyword parameters
This describes keyword parameters of the filter. These are the values key1=value1, key2=value2 and so on in the following
example: input | community.general.to_prettytable(key1=value1, key2=value2, ...)
| Parameter | Comments | 
|---|---|
| Dictionary where keys are column names and values are alignment settings. Valid alignment values are  For example,  | |
| List of column names to specify the order of columns in the table. | |
| List of custom header names to use instead of dictionary keys. | 
Examples
---
- name: Set a list of users
  ansible.builtin.set_fact:
    users:
      - name: Alice
        age: 25
        role: admin
      - name: Bob
        age: 30
        role: user
- name: Display a list of users as a table
  ansible.builtin.debug:
    msg: >-
      {{
        users | community.general.to_prettytable
      }}
- name: Display a table with custom column ordering
  ansible.builtin.debug:
    msg: >-
      {{
        users | community.general.to_prettytable(
          column_order=['role', 'name', 'age']
        )
      }}
- name: Display a table with selective column output (only show name and role fields)
  ansible.builtin.debug:
    msg: >-
      {{
        users | community.general.to_prettytable(
          column_order=['name', 'role']
        )
      }}
- name: Display a table with custom headers
  ansible.builtin.debug:
    msg: >-
      {{
        users | community.general.to_prettytable(
          header_names=['User Name', 'User Age', 'User Role']
        )
      }}
- name: Display a table with custom alignments
  ansible.builtin.debug:
    msg: >-
      {{
        users | community.general.to_prettytable(
          column_alignments={'name': 'center', 'age': 'right', 'role': 'left'}
        )
      }}
- name: Combine multiple options
  ansible.builtin.debug:
    msg: >-
      {{
        users | community.general.to_prettytable(
          column_order=['role', 'name', 'age'],
          header_names=['Position', 'Full Name', 'Years'],
          column_alignments={'name': 'center', 'age': 'right', 'role': 'left'}
        )
      }}
Return Value
| Key | Description | 
|---|---|
| The formatted ASCII table. Returned: success | 
