如何在python中使用key = value格式解析字节字符串

时间:2018-10-02 14:29:47

标签: python-3.x

from subprocess import PIPE,run
....
....
log=run([myCmd,cwd='/my/dir',stdout=PIPE,stderr=PIPE)

现在log的价值如下:

b'owner=mike\ntitle=clean\nmiles=120k\nlocation=tx\n'

解析并获取我感兴趣的值的最佳方法是什么,例如,我喜欢获取miles的值120k。我使用python3

2 个答案:

答案 0 :(得分:0)

对其进行解码,然后滥用dict接受可迭代的事实:

string = b'owner=mike\ntitle=clean\nmiles=120k\nlocation=tx\n'
string = string.decode()
print(dict(key_value.split('=') for key_value in string.split('\n') if key_value))
# {'owner': 'mike', 'title': 'clean', 'miles': '120k', 'location': 'tx'}

从这里开始,获取任意值的方法就像访问字典键一样简单:

d = dict(key_value.split('=') for key_value in string.split('\n') if key_value)
print(d['miles'])
# 120k

答案 1 :(得分:0)

去哪里,

 _dict = {}
 f = b'owner=mike\ntitle=clean\nmiles=120k\nlocation=tx\n'
[_dict.update({e.split("=")[0]: e.split("=")[1]} ) for e in f.decode().split("\n") if e]

对于里程价值,您可以

_dict["miles"]