1

私はPythonを学び始めたばかりの初心者です。Last.fm の pylast ライブラリをいじって、ユーザーの隣人とその属性のリストを取得していますが、隣人の国を印刷しようとすると、次のエラーが発生します。

thrillofme
None
0
Traceback (most recent call last):
  File "/Users/Moi/DSR/Week 2/My tutorials/my-lastfm-thing-3.py", line 24, in <module>
    print country
  File "/Library/Python/2.7/site-packages/pylast.py", line 944, in r
    return _string(funct(*args))
  File "/Library/Python/2.7/site-packages/pylast.py", line 3497, in _string
return text.encode("utf-8")
AttributeError: 'NoneType' object has no attribute 'encode'

このエラー メッセージに対する他の解決策をいくつか見てみると、印刷用に正しくエンコードされていないという印象を受けますが、countryどうすればよいかわかりません。どんな助けでも大歓迎です!これが私のコードです。

import pylast

api_key = "XXX"
username = "Strangelove"
network = pylast.LastFMNetwork(api_key = api_key)
user = pylast.User(username, network)

# Let's pull a list of the specified user's Last.fm neighbours.
# Neighbours are users with a similar taste in music.

neighbours = user.get_neighbours()

for i in neighbours:
    gender = i.get_gender()
    age = i.get_age()
    country = i.get_country()
    print i
    print gender
    print age
    print country
4

2 に答える 2

2

国名がpylastありませんが、図書館はそのケースを正しく処理していません。空の国のケースを自分でテストする必要があります。

if country.name:
    print country
于 2013-01-30T17:06:16.613 に答える
0

pylast のフォークでこれを修正しました。

を呼び出すと、 isの代わりにオブジェクトがcountry = i.get_country()返されるようになりました。NoneCountrynameNone

于 2014-03-01T11:03:54.643 に答える