diff --git a/openstackclient/network/v2/network_qos_policy.py b/openstackclient/network/v2/network_qos_policy.py
index d77e5db938..29967d7d5a 100644
--- a/openstackclient/network/v2/network_qos_policy.py
+++ b/openstackclient/network/v2/network_qos_policy.py
@@ -15,6 +15,7 @@
 
 import logging
 
+from cliff import columns as cliff_columns
 from osc_lib.command import command
 from osc_lib import exceptions
 from osc_lib import utils
@@ -26,6 +27,16 @@ from openstackclient.network import common
 LOG = logging.getLogger(__name__)
 
 
+class RulesColumn(cliff_columns.FormattableColumn):
+    def human_readable(self):
+        return '\n'.join(str(v) for v in self._value)
+
+
+_formatters = {
+    'rules': RulesColumn,
+}
+
+
 def _get_columns(item):
     column_map = {
         'is_shared': 'shared',
@@ -287,5 +298,5 @@ class ShowNetworkQosPolicy(command.ShowOne):
         obj = client.find_qos_policy(parsed_args.policy,
                                      ignore_missing=False)
         display_columns, columns = _get_columns(obj)
-        data = utils.get_item_properties(obj, columns)
+        data = utils.get_item_properties(obj, columns, formatters=_formatters)
         return (display_columns, data)
diff --git a/openstackclient/tests/unit/network/v2/test_network_qos_policy.py b/openstackclient/tests/unit/network/v2/test_network_qos_policy.py
index af4cb3fbcc..ca21ccf702 100644
--- a/openstackclient/tests/unit/network/v2/test_network_qos_policy.py
+++ b/openstackclient/tests/unit/network/v2/test_network_qos_policy.py
@@ -432,7 +432,7 @@ class TestShowNetworkQosPolicy(TestQosPolicy):
         _qos_policy.is_default,
         _qos_policy.name,
         _qos_policy.project_id,
-        _qos_policy.rules,
+        network_qos_policy.RulesColumn(_qos_policy.rules),
         _qos_policy.shared,
     )