如何从字符串创建 python 字典?
How do I make a python dictionary from a string?
我正在从这个网站收集蛋白质序列 ID:https://www.uniprot.org/
我写过这段代码:
url = 'https://www.uniprot.org/uploadlists/'
params = {
'from': 'ID',
'to': 'UPARC',
'format': 'tab',
'query': 'P00766 P40925'
}
data = urllib.parse.urlencode(params)
data = data.encode('utf-8')
req = urllib.request.Request(url, data)
with urllib.request.urlopen(req) as f:
response = f.read()
string_it = (response.decode('utf-8'))
print(string_it)
当我打印结果字符串时:
我得到如下所示的输出:
From To
P00766 UPI000011047C
P40925 UPI0000167B3E
如何将其转换为字典?
基本上就是把字符串中的值适当的拆分使用即可。代码如下:
string_list = string_it.split("\n")
string_list = [i for i in string_list if i!=""]
dict_values = {}
for i in string_list[1:]:
dict_values[i.split("\t")[0]] = i.split("\t")[1]
dict_values
输出为:
{'P00766': 'UPI000011047C', 'P40925': 'UPI0000167B3E'}
代码遍历:
- 最初,根据新行拆分字符串。
- 这通常会导致条目为空。所以,删除它。
- 初始化字典。
- 遍历行,忽略第一个条目,因为它只是
From
和 To
.
- 根据
\t
分隔符拆分它,并将值添加到字典中。
我相信你的字符串是这样的:
string_it = """
From To
P00766 UPI000011047C
P40925 UPI0000167B3E
"""
您可以使用splitlines()
拆分所有行。然后再次使用 split()
拆分单行。
new_dict = {}
for line in string_it.splitlines():
if line == "":
continue
new_dict[line.split()[0]] = line.split()[1]
new_dict
我正在从这个网站收集蛋白质序列 ID:https://www.uniprot.org/
我写过这段代码:
url = 'https://www.uniprot.org/uploadlists/'
params = {
'from': 'ID',
'to': 'UPARC',
'format': 'tab',
'query': 'P00766 P40925'
}
data = urllib.parse.urlencode(params)
data = data.encode('utf-8')
req = urllib.request.Request(url, data)
with urllib.request.urlopen(req) as f:
response = f.read()
string_it = (response.decode('utf-8'))
print(string_it)
当我打印结果字符串时:
我得到如下所示的输出:
From To
P00766 UPI000011047C
P40925 UPI0000167B3E
如何将其转换为字典?
基本上就是把字符串中的值适当的拆分使用即可。代码如下:
string_list = string_it.split("\n")
string_list = [i for i in string_list if i!=""]
dict_values = {}
for i in string_list[1:]:
dict_values[i.split("\t")[0]] = i.split("\t")[1]
dict_values
输出为:
{'P00766': 'UPI000011047C', 'P40925': 'UPI0000167B3E'}
代码遍历:
- 最初,根据新行拆分字符串。
- 这通常会导致条目为空。所以,删除它。
- 初始化字典。
- 遍历行,忽略第一个条目,因为它只是
From
和To
. - 根据
\t
分隔符拆分它,并将值添加到字典中。
我相信你的字符串是这样的:
string_it = """
From To
P00766 UPI000011047C
P40925 UPI0000167B3E
"""
您可以使用splitlines()
拆分所有行。然后再次使用 split()
拆分单行。
new_dict = {}
for line in string_it.splitlines():
if line == "":
continue
new_dict[line.split()[0]] = line.split()[1]
new_dict