fix #31494: export_lib.get_temp_export_dir returns incorrect value with mixed bytes and str
diff --git a/tensorflow/python/saved_model/model_utils/export_test.py b/tensorflow/python/saved_model/model_utils/export_test.py
index c87d2ee..521790e 100644
--- a/tensorflow/python/saved_model/model_utils/export_test.py
+++ b/tensorflow/python/saved_model/model_utils/export_test.py
@@ -21,6 +21,7 @@
 import os
 import tempfile
 import time
+import re
 
 from tensorflow.python.framework import constant_op
 from tensorflow.python.framework import dtypes
@@ -206,6 +207,14 @@
     self.assertTrue(int(time_1) < int(time_2))
     self.assertTrue(int(time_2) < int(time_3))
 
+  def test_get_temp_export_dir(self):
+    export_dir_base = "/tmp/export/"
+    export_dir_1 = export_utils.get_timestamped_export_dir(export_dir_base)
+    temp_export_dir = export_utils.get_temp_export_dir(export_dir_1).decode("utf-8")
+    print(temp_export_dir)
+    expected_1 = re.compile(export_dir_base + "temp-[\d]{10}")
+    self.assertTrue(expected_1.match(temp_export_dir))
+
   @test_util.deprecated_graph_mode_only
   def test_build_all_signature_defs_serving_only(self):
     receiver_tensor = {"input": array_ops.placeholder(dtypes.string)}
diff --git a/tensorflow/python/saved_model/model_utils/export_utils.py b/tensorflow/python/saved_model/model_utils/export_utils.py
index 737f76e..f4b135a 100644
--- a/tensorflow/python/saved_model/model_utils/export_utils.py
+++ b/tensorflow/python/saved_model/model_utils/export_utils.py
@@ -242,7 +242,7 @@
   """
   (dirname, basename) = os.path.split(timestamped_export_dir)
   temp_export_dir = os.path.join(
-      compat.as_bytes(dirname), compat.as_bytes('temp-{}'.format(basename)))
+      compat.as_bytes(dirname), compat.as_bytes('temp-' + compat.as_str(basename)))
   return temp_export_dir