code: def build_markdown_table(headers, rows, row_keys=None):
      row_maxes = _find_row_maxes(headers, rows)
      row_keys = row_keys or [key for key, value in headers.items()]
      table = [
          _build_row(headers, row_maxes, row_keys),
          _build_separator(row_maxes, row_keys)
      ]
      for row in rows:
          table.append(_build_row(row, row_maxes, row_keys))
      return '\n'.join(table) + '\n'