2017-09-02 96 views
0

我使用Shairport同步元閱讀器管點播數據,我目前使用下面的python3代碼返回一個字符串指定的行,標題和專輯字符串,使用我在網上找到的代碼。我遇到的最後一行註釋的錯誤指的是'類型str不支持緩衝區API'。打印從subprocess.Popen輸出

我proc.stdout.readline()輸出如下:

b'Client\'s IP: "fe80::1477:d5d0:763a:a093".\n' 
b'"ssnc" "svip": "fe80::25f8:b47e:c427:e431".\n' 
b'"ssnc" "snua": "AirPlay/352.17.1".\n' 
b'"ssnc" "acre": "2761427076".\n' 
b'"ssnc" "daid": "FA4CC8448AD2A90E".\n' 
b'"ssnc" "pbeg": "".\n' 
b'"ssnc" "pvol": "-11.74,-19.48,-96.30,0.00".\n' 
b'"ssnc" "pfls": "".\n' 
b'"ssnc" "pcst": "2456171464".\n' 
b'Picture received, length 95419 bytes.\n' 
b'"ssnc" "pcen": "2456171464".\n' 
b'"ssnc" "prgr": "2455930277/2456184560/2468648320".\n' 
b'"ssnc" "mdst": "2456186320".\n' 
b'Album Name: "Funeral".\n' 
b'Artist: "Arcade Fire".\n' 
b'Composer: "Arcade Fire/Josh Deu".\n' 
b'Genre: "Indie Rock".\n' 
b'Title: "Neighborhood #1 (Tunnels)".\n' 
b'"ssnc" "mden": "2456186320".\n' 
b'"ssnc" "pcst": "2456186320".\n' 
b'Picture received, length 95419 bytes.\n' 
b'"ssnc" "pcen": "2456186320".\n' 
b'"ssnc" "prgr": "2456019183/2456191600/2468737226".\n' 
b'"ssnc" "prsm": "".\n' 

我的問題是如何降低打印輸出到涉及到藝術家,曲目和專輯線的值?

回答

0

這些而不是字符串字節,參見例如https://docs.python.org/3/reference/lexical_analysis.html#literals

字節文字總是與 'b' 或 'B' 前綴;他們產生一個 字節類型的實例,而不是str類型。它們可能只有 包含ASCII字符;數值爲128或更大的字節 必須用轉義表示。

您可以使用decode將它們轉換爲字符串:

line = proc.stdout.readline().decode() 
+1

完美地工作,非常感謝。我一直在嘗試str()輸出。 –