python如何解析;用户:12345位置:纽约搜索“;

python如何解析;用户:12345位置:纽约搜索“;,python,Python,我希望python解析字符串“用户:12345位置:ny搜索” 然后我可以使用: if "user" in string: .... if "location" in string: ... 有什么方法可以做到这一点吗?可能有更好的方法,但这就是我想到的: mydict = {} for pair in mystring.split(' '): parts = pair.split(':') if len(parts)>1 mydict{parts[0]:pa

我希望python解析字符串“用户:12345位置:ny搜索”

然后我可以使用:

if "user" in string:
....

if "location" in string:
...

有什么方法可以做到这一点吗?

可能有更好的方法,但这就是我想到的:

mydict = {}
for pair in mystring.split(' '):
    parts = pair.split(':')
    if len(parts)>1
     mydict{parts[0]:parts[1]
但这意味着nor dict键和nor值不能包含空格。用逗号分隔这些对可能会解决这个问题

最佳做法是将其编码和解码为json,这将使其看起来像这样:

用户:{'user_id':1234,'location':'my search'}


标准python库包含一个

可能有更好的方法,但这就是我想到的:

mydict = {}
for pair in mystring.split(' '):
    parts = pair.split(':')
    if len(parts)>1
     mydict{parts[0]:parts[1]
但这意味着nor dict键和nor值不能包含空格。用逗号分隔这些对可能会解决这个问题

最佳做法是将其编码和解码为json,这将使其看起来像这样:

用户:{'user_id':1234,'location':'my search'}


标准python库包含一个

简单明了的解决方案,如果字符串始终采用该格式:

if string.find('user:') > -1:
    user = string[string.find('user:' + len('user:'):string.find('location:') - 1]
    ....
if string.find('location:') > -1:
    location = string[string.find('location:') + len('location:')]
    ...

如果字符串始终采用该格式,则是一个简单明了的解决方案:

if string.find('user:') > -1:
    user = string[string.find('user:' + len('user:'):string.find('location:') - 1]
    ....
if string.find('location:') > -1:
    location = string[string.find('location:') + len('location:')]
    ...

虽然unutbu最初的答案令人印象深刻,但现在看来,
re
似乎有点过火了。下面是一个简单的答案:

>>> text = 'user:12345 location:ny search'
>>> dict(pair.split(":") for pair in text.split() if ":" in pair)
{'user': '12345', 'location': 'ny'}
编辑:

要插入带有关键字的“搜索”“关键字”,请执行以下操作:


虽然unutbu最初的答案令人印象深刻,但现在看来,
re
似乎有点过火了。下面是一个简单的答案:

>>> text = 'user:12345 location:ny search'
>>> dict(pair.split(":") for pair in text.split() if ":" in pair)
{'user': '12345', 'location': 'ny'}
编辑:

要插入带有关键字的“搜索”“关键字”,请执行以下操作:


将其解析为什么?预期输出是什么?如果字符串中的“user:使用字符串,您实际上已经可以执行
操作。将其解析为什么?预期输出是什么?如果字符串中的“user:
使用字符串,您实际上已经可以执行
操作。我可以获取“关键字”:“搜索”吗?我可以获取“关键字”:“搜索”吗?