从字符串中提取值的更好方法

las*_*pal 1 python

str = 'This is first line \n 2 line start from her\ Service Name: test \n some 4 line \n User Name: amit \n some something \n Last Name: amit amit \n
Run Code Online (Sandbox Code Playgroud)

基本上我感兴趣的是获取服务名称和用户名.我应该使用正则表达式来执行此操作.我想创建一个类似的字典

dict['service_name'] = 'test'
dict['user_name'] = 'amit'
dict['last_name'] = 'amit amit'
Run Code Online (Sandbox Code Playgroud)

那么搜索和获取价值的最佳方式是什么.

谢谢

NPE*_*NPE 5

鉴于:

str = 'This is first line \n 2 line start from her\nService Name: test \n some 4 line \nUser Name: amit \n some something \nLast Name: amit amit \n'
Run Code Online (Sandbox Code Playgroud)

以下代码:

dict([line.split(':') for line in str.split('\n') if ':' in line])
Run Code Online (Sandbox Code Playgroud)

生产:

{'Last Name': ' amit amit ', 'Service Name': ' test ', 'User Name': ' amit '}
Run Code Online (Sandbox Code Playgroud)

您可能希望更改split(':')为split(':', 1)以避免右侧冒号出现问题.此外,strip如果空格是个问题,您可能需要进行一些调用.