我有一个关于将base64编码的字符串转换为二进制的问题。我正在收集以下链接中的Fingerprint2D,
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))
非常感谢您!!