我有一個從 json 回傳 pdf 的 API,但它只回傳一長串整數,如下所示
[{"status":"SUCCESS"},{"data":"37,80,68,70,45,49,46,52,10,37,-45,-21,-23,-31,10,49,32,48,32,111,98,106,10,60,60,47,84,105,116,108,101,32,40,49,49,32,67,83,45,73,73,32,32,83,117,98,106,101,99,116,105,118,101,32,81,46,...
...,1,32,49,55,10,47,82,111,111,116,32,56,32,48,32,82,10,47,73,110,102,111,32,49,32,48,32,82,62,62,10,115,116,97,114,116,120,114,101,102,10,54,55,54,56,53,10,37,37,69,79,70"}
我的問題是:
- 這是什么編碼?
- 如何使用python將其轉換為pdf?
PS:這是獲得完整回應的端點。
uj5u.com熱心網友回復:
data 的開頭暗示您實際上有一個 PDF 檔案的位元組值串列:它以'%PDF-1.4'.
所以你必須首先提取那個奇怪的字串:
data = json_data[1]['data']
具有:
"37,80,68,70,45,49,46,52,10,37,-45,-21,-23,-31,10,49,32,48,32,111,98,106,10,60,60,47,84,105,116,108,101,32,40,49,49,32,67,83,45,73,73,32,32,83,117,98,106,101,99,116,105,118,101,32,81,46, ..."
首先將其轉換為 int 串列,然后是位元組字串(i if i >=0 else i 256確保為正值...):
intlist = [int(i) for i in data.split(",")]
b = bytes(i if i >=0 else i 256 for i in intlist)
要得到 b'%PDF-1.4\n%\xd3\xeb\xe9\xe1\n1 0 obj\n<</Title (11 CS-II Subjective Q...'
最后將其保存到檔案中:
with open('file.pdf', 'wb') as fd:
fd.write(b)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/420843.html
標籤:
