Есть ли способ использовать кодировку python, чтобы сообщения о сбоях xmlrpc показывались на стороне клиента с правильным CR?
На стороне сервера xmlrpc
сервер в Python У меня есть следующая строка кода в функции перезаписи SimpleXMLRPCServer._marshaled_dispatch
:
response = xmlrpclib.dumps(
xmlrpclib.Fault(1, "some error\nnext line\n"),
encoding=self.encoding, allow_none=self.allow_none)
создать пользовательское сообщение об ошибке / ошибке, которое будет отображаться на стороне клиента. Тем не менее, этот код покажет что-то вроде следующего на стороне клиента
xmlrpclib.Fault: <Fault 1: "some error\nnext line\n">
в то время как я хочу иметь что-то вроде
xmlrpclib.Fault: <Fault 1: "some error
next line
">
то есть где символ новой строки фактически "используется" и не печатается.
Любые идеи, которые я могу сделать это (на стороне сервера, то есть изменение строки, только что показанной выше, и без использования стороннего пакета.)?
1 ответ
Вы смотрите на представление Fault
объект; само строковое сообщение содержится в .faultString
атрибут:
print fault.faultString
__repr__
в противном случае класс Fault представляет это значение, используя repr()
; вы не можете обойти это без изменения xmlrpclib.Fault
сам класс (заменив это __repr__
метод или добавление __str__
метод к этому).
Вы можете сделать это в классе:
from xmlrpclib import Fault
def fault_repr(self):
return "<Fault %s: %s>" % (self.faultCode, self.faultString)
Fault.__repr__ = fault_repr