【发布时间】:2017-08-29 16:44:56
【问题描述】:
我在将 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))
已经非常感谢了!!
【问题讨论】:
标签: python python-3.x binary base64 hex