python如何解析;用户:12345位置:纽约搜索“;
我希望python解析字符串“用户:12345位置:ny搜索” 然后我可以使用: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
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:
使用字符串,您实际上已经可以执行操作。我可以获取“关键字”:“搜索”吗?我可以获取“关键字”:“搜索”吗?