我在将base64编码的字符串转换为二进制时遇到问题.我在下面的链接中收集 fingerprint ,
url = "https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/cid/108770/property/Fingerprint2D/xml"
Fingerprint2D=AAADccB6OAAAAAAAAAAAAAAAAAAAAAAAAAA8WIEAAAAAAACxAAAAHgAACAAADAzBmAQwzoMABgCI AiTSSACCCAAhIAAAiAEMTMgMJibMsZuGeijn4BnI+YeQ0OMOKAACAgAKAABQAAQEABQAAAAAAAAA AA==
Pubchem中的描述表示这是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))
如果我使用上面的代码,我会得到以下错误,"Value error:invalid literal for int()with base16:
如果我使用下面的代码,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))
已经非常感谢了!!