Вы не можете сделать это напрямую, но вы можете приблизиться к этому с помощью pprint
.
Пример кода находится в https://stackoverflow.com/a/10883893/705086.
Он охватывает только тип Unicode, но может быть легко адаптирован к закодированным в utf-8 str/bytes, как в OP.
В идеале pprint должен поддерживать инвариант, что форматированный/печатный PDO является допустимым выражением Python. Связанный код также можно взломать, чтобы сохранить этот инвариант.
Вы можете использовать модуль monkey-path pprint
для поддержания этого инварианта:
import functools, pprint
def escape(s):
lead = ""
if isinstance(s, unicode):
s = s.encode("utf-8")
lead = "u"
return "%s\"%s\"" % (lead, s.replace("\\", "\\\\").replace("\"", "\\\""))
def patched(f):
if hasattr(f, "_already_patched"):
return f
@functools.wraps(f)
def sub(object, *args, **kwargs):
try:
if isinstance(object, basestring):
return escape(object), True, False
except Exception:
pass
return f(object, *args, **kwargs)
sub._already_patched = True
return sub
pprint._safe_repr = patched(pprint._safe_repr)
pprint.pprint([u"\N{EURO SIGN}", u"\N{EURO SIGN}".encode("utf-8")])
[u"€", "€"]
person
Dima Tisnek
schedule
17.04.2014
repr()
для представления содержащихся значений; вывод предназначен только для целей отладки. Вы должны создавать этот вывод с'
кавычками и квадратными скобками для объекта списка? - person Martijn Pieters   schedule 17.04.2014unicode
объектов. - person Martijn Pieters   schedule 17.04.2014