【发布时间】:2014-05-22 10:13:01
【问题描述】:
我使用库“suds”与 SOAP 服务器通信。 请求成功完成后,我收到了答复:
answer = client.invoke('RetrieveBLABLAObject', modelthings)
这个答案是请求对象的许多不同字段的结构。每个字段都是由“string”参数“_type”和参数“value”组成的结构,可以有不同的类型。
answer[key][value] - 返回参数“value”的值。但在调试模式下(我使用 Python 2.7.6 和 PyCharm),它显示值的类型为“文本”。不是“str”,不是“unicode”,而是“Text”。
如果我检查它
isinstance(obj[cur_key]['value'], unicode)
它告诉我它将此文本视为“unicode”。但是如果我将它与具有相同主体的 unicode 进行比较,它会返回 false:
if obj[cur_key]['value'] != u'String that I know is there':
print("true") #it is printing, but it shouldn't
为什么会这样?如何将“文本”转换为 unicode? 我试过了
obj[cur_key]['value'].decode('utf-8')
它例外。我该如何处理这种“文本”类型?
【问题讨论】:
-
repr(obj[cur_key]['value'])给你什么?还有什么例外? -
@Martijn 是对的,它是子类,以及他所描述的一切。无论如何感谢您的帮助。