python将字符串拆分为多个分隔符并放入字典中

2024-10-03 15:32:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的字符串,我正试图分裂成一个特定的名字字典。你知道吗

string1 = "fdsfsf:?x=klink:apple&nn=specialtime&tr=instruction1&tr=instruction2&tr=instruction3"

我希望得到的是:

>>> print(dict)

{'namy_names': 'specialtime', 'tracks': ['instruction1', 'instruction2', 'instruction3']}

我对使用字典还很陌生,所以不太清楚它会变成什么样子。你知道吗

我试过下面的代码,但它只提供instruction1,而不是instructions的完整列表

delimiters = ['&nn', '&tr']

values = re.split('|'.join(delimiters), string1)
values.pop(0)  # remove the initial empty string
keys = re.findall('|'.join(delimiters), string1)
output = dict(zip(keys, values))

print(output)

Tags: re字典nnkeystrdictvaluesprint
2条回答

使用url解析。你知道吗

from urllib import parse

url = "fdsfsf:?x=klink:apple&nn=specialtime&tr=instruction1&tr=instruction2&tr=instruction3"
d = parse.parse_qs(parse.urlparse(url).query)

print(d)

退货:

{'nn': ['specialtime'],
 'tr': ['instruction1', 'instruction2', 'instruction3'],
 'x': ['klink:apple']}

从这一点来说,如果有必要的话…,你只需要重命名和选择你的变量。像这样:

d = {
    'namy_names':d.get('nn',['Empty'])[0],
    'tracks':d.get('tr',[])
}

# {'namy_names': 'specialtime', 'tracks': ['instruction1', 'instruction2', 'instruction3']}

这看起来像url编码的数据,因此您可以/应该使用^{}

import urllib.parse

string1 = "fdsfsf:?x=klink:apple&nn=specialtime&tr=instruction1&tr=instruction2&tr=instruction3"

dic = urllib.parse.parse_qs(string1)
dic = {'namy_names': dic['nn'][0],
       'tracks': dic['tr']}
# result: {'namy_names': 'specialtime',
#          'tracks': ['instruction1', 'instruction2', 'instruction3']}

相关问题 更多 >