Python 将SAP XSTRING转换为文档文件?

Python 将SAP XSTRING转换为文档文件?,python,python-requests,abap,doc,python-responses,Python,Python Requests,Abap,Doc,Python Responses,我在一个有SAP RFC的应用程序中工作,该应用程序将文档文件作为XString返回。还有一个用python编写的客户端应用程序,它向SAP RFC发送请求以获取文档文件。所以我的问题是,在python中,如何将XSTRING转换为doc文件 响应头的内容类型为application/msword;charset=utf-8这个答案是由OP在他自己的问题中给出的,所以我把它移到这里以符合StackOverflow原则 回答我自己的问题: 即使SAP RFC返回类型为xstring的变量,Pyth

我在一个有SAP RFC的应用程序中工作,该应用程序将文档文件作为XString返回。还有一个用python编写的客户端应用程序,它向SAP RFC发送请求以获取文档文件。所以我的问题是,在python中,如何将XSTRING转换为doc文件


响应头的内容类型为
application/msword;charset=utf-8

这个答案是由OP在他自己的问题中给出的,所以我把它移到这里以符合StackOverflow原则

回答我自己的问题:

即使SAP RFC返回类型为
xstring
的变量,Python也会在base64中接收它。为了将base64字符串转换为doc,首先我对base64字符串进行了解码,并以RTF格式输出。然后我将RTF字节写入
.RTF
文件。RTF文件可以从大多数字处理工具打开。因此,我能够从字处理工具打开
.rtf
文件

以下是我为转换编写的代码:

    from base64 import b64decode

    base64_resp = response_json['data']
    bytes_rtf = b64decode(base64_resp, validate=True)

    f = open(rtf_filename, 'wb')
    f.write(bytes_rtf)
    f.close()

XSTRING类型的变量是一个字节字符串。如果这些字节对应于所述的“doc文件”,为什么不考虑它们的原样呢。你试了什么?此外,application/msword对应于“旧”专有格式Word 97-2003,因此它是由字节组成的,因此提供
charset
是很奇怪的。我的XTRING看起来像这样:e1xydgyxxxxgfkzwzwzw5nmtaynvxhbnnpxgfuc2ljcgcxmjuyxhvjthis不能是XSTRING(它是十六进制数字或不可打印的字符)。是base64。我可以通过一个将其解码为
{\rtf1\adeflang1025\ansi\ansicpg1252\uc
的。可能它是由RFC作为XSTRING发送的,SAP RFC或pyRFC会将其转换为base64。不管怎样。如果您的程序在base64中有它,您应该将其解码并保存为
.rtf
文件,然后您可以用MS Word打开它。@SandraRossi您的回答很有帮助。您在base64上是正确的。谢谢。谢谢。我看到您编辑了您的问题我提议对你的问题提出一个答案。我把它改为一个答案。