diff --git lib/yaml/representer.py lib/yaml/representer.py
index 5c9a76f..c704265 100644
--- lib/yaml/representer.py
+++ lib/yaml/representer.py
@@ -123,7 +123,13 @@ class BaseRepresenter:
             if not (isinstance(node_value, ScalarNode) and not node_value.style):
                 best_style = False
             value.append((node_key, node_value))
-        value.sort()
+        try:
+            value.sort()
+        except TypeError:
+            def sortkey(item):
+                key, value = item
+                return str(type(key)), key, value
+            value.sort(key=sortkey)
         if flow_style is None:
             if self.default_flow_style is not None:
                 node.flow_style = self.default_flow_style
