私は比較的新しいプログラミングです。私は小さな問題を持っています。ubuntu(Linux)のためにSnipに相当するPythonを書いていますどういうわけか、正しくタイトル、しかし、私はこの取得同じやり方でアーティストをエンコードしようとしたときと同じようPython;どのようにエスケープされた非ユニコード文字をそれぞれの '実際の' utf-8と置き換えるのですか?
アーティストをエンコードすることができません:タイトルはまったく同じに行われていることさが
File "./songfinder.py", line 11, in currentplaying
artiststr = str((metadata['xesam:artist']).encode('utf-8'))
AttributeError: 'dbus.Array' object has no attribute 'encode'
をは働いている。
コードは、これまでの作業が、例えば、\の代わりにØのxd8、および類似持っています:それは私の問題を解決しないのはなぜ Replace non-ascii chars from a unicode string in Python
:
import dbus
session_bus = dbus.SessionBus()
spotify_bus = session_bus.get_object("org.mpris.MediaPlayer2.spotify", "/org/mpris/MediaPlayer2")
spotify_properties = dbus.Interface(spotify_bus, "org.freedesktop.DBus.Properties")
def currentplaying():
metadata = spotify_properties.Get("org.mpris.MediaPlayer2.Player", "Metadata")
title = str((metadata['xesam:title']).encode('utf-8'))
artiststr = str((metadata['xesam:artist']))
if ("dbus.string" in artiststr.lower()):
artists = artiststr.split("(u")
artist = artists[1]
artists = artist.split(")],")
artist = artists[0]
artist = artist.replace("(u", "")
else:
artist = "'unknown'"
artist = (artist.replace("'",""))
playing = (artist + " - " + title + " ")
return playing
#save playing to file.txt
関連QNAさんを私はしたいと思います実際の文字を印刷して保存します。類似の文字で置き換えません。
Pythonのバージョン:ヘルプのための2.7.11 – Bjornolil