3
我有一个有关将base64编码的字符串转换为二进制的问题。我收集Fingerprint2D在下面的链接,Python从base64转换为二进制
url = "https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/cid/108770/property/Fingerprint2D/xml"
Fingerprint2D=AAADccB6OAAAAAAAAAAAAAAAAAAAAAAAAAA8WIEAAAAAAACxAAAAHgAACAAADAzBmAQwzoMABgCI AiTSSACCCAAhIAAAiAEMTMgMJibMsZuGeijn4BnI+YeQ0OMOKAACAgAKAABQAAQEABQAAAAAAAAA AA==
在PubChem数据库的descriptiong说,这是115字节的字符串,而当转换成二进制应该是920位。我试图将其转换为用下面的二进制,
response = requests.get(url)
tree = ET.fromstring(response.text)
for el in tree[0]:
if "Fingerprint2D" in el.tag:
fpp = bin(int(el.text, 16))
print(len(fpp))
如果我用上面的代码中,我得到了下面的错误,“价值的错误:用base16无效字面INT():
如果我使用下面的代码,FPP的长度(二进制)等于1278这是不是我的预期。
response = requests.get(url)
tree = ET.fromstring(response.text)
for el in tree[0]:
if "Fingerprint2D" in el.tag:
fpp = bin(int(hexlify(el.text), 16))
print(len(fpp))
非常感谢!!已经
对于二进制输出我期待像“0001001 ..”这样的字符串,还是必须对“解码”输出执行二进制转换? –
了解。看我的编辑。 –
谢谢!然而,还有一件事我不明白,结果二进制字符串的长度是423,我们可以说我们完美解码了预期的920位吗?有没有办法检索长度为920的二进制字符串? –