<p>可以使用<code>JSON</code>而不是<code>re</code>有效地解析这种类型的字符串</p>
<p>我向你展示了两种方式。但是,在执行任何解析之前,需要使用<code>decode()</code>方法将<code>bytes</code>对象转换为<code>string</code>等价物</p>
<p><strong>正则表达式方式</strong></p>
<p><strong>代码</strong></p>
<pre class="lang-py prettyprint-override"><code>import re
x = b'{"Id":"9e46ba44-2b89-4f9d-88eb-5b5dcfe908e0","Name":"\xd0\x9a\xd0\xb0\xd0\xbd\xd0\xb0\xd0\xbb 89","AltEnabled":true,"ReceiveVideoMbps":2.6148132324218749,"ReceiveAltVideoMbps":0.18560943603515626,"WriteVideoMbps":2.5809969113862512,"Status":"Ok"}'
regex = re.compile(r"{\"Id\":\"(?P<id>.*?)\",\"Name\":\"(?P<name>.*?)\",.*,\"ReceiveVideoMbps\":(?P<rec>.*?),.*")
items = regex.findall(x.decode())
print(items)
</code></pre>
<p><strong>输出</strong></p>
<p>输出将是一个元组列表</p>
<pre><code>[('9e46ba44-2b89-4f9d-88eb-5b5dcfe908e0', 'Канал 89', '2.6148132324218749')]
</code></pre>
<p><strong>JSON方式</strong></p>
<p><strong>代码</strong></p>
<pre class="lang-py prettyprint-override"><code>import json
x = b'{"Id":"9e46ba44-2b89-4f9d-88eb-5b5dcfe908e0","Name":"\xd0\x9a\xd0\xb0\xd0\xbd\xd0\xb0\xd0\xbb 89","AltEnabled":true,"ReceiveVideoMbps":2.6148132324218749,"ReceiveAltVideoMbps":0.18560943603515626,"WriteVideoMbps":2.5809969113862512,"Status":"Ok"}'
items = json.loads(x.decode())
print(items)
</code></pre>
<p><strong>输出</strong></p>
<p>输出为字典</p>
<pre><code>{'AltEnabled': True,
'Id': '9e46ba44-2b89-4f9d-88eb-5b5dcfe908e0',
'Name': 'Канал 89',
'ReceiveAltVideoMbps': 0.18560943603515626,
'ReceiveVideoMbps': 2.614813232421875,
'Status': 'Ok',
'WriteVideoMbps': 2.580996911386251}
</code></pre>
<p>现在,您可以使用<code>dict</code>键访问元素</p>
<p><strong>示例</strong></p>
<pre class="lang-py prettyprint-override"><code>print(items['Id']) # 9e46ba44-2b89-4f9d-88eb-5b5dcfe908e0
print(items['Name']) # Канал 89
print(items['ReceiveVideoMbps']) # 2.614813232421875
</code></pre>