2010-04-13 9 views
5

मिला है, मुझे उपयोगकर्ताओं (विश्वविद्यालय अभ्यास) के लिए last.fm को क्रॉल करना होगा। मैं अजगर करने के लिए नया हूँ और त्रुटि निम्नलिखित मिलती है:टाइप एरर: यूनिकोड को कॉर्सिंग: स्ट्रिंग या बफर की आवश्यकता है, उपयोगकर्ता को

Traceback (most recent call last): 
    File "crawler.py", line 23, in <module> 
    for f in user_.get_friends(limit='200'): 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pylast.py", line 2717, in get_friends 
    for node in _collect_nodes(limit, self, "user.getFriends", False): 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pylast.py", line 3409, in _collect_nodes 
    doc = sender._request(method_name, cacheable, params) 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pylast.py", line 969, in _request 
    return _Request(self.network, method_name, params).execute(cacheable) 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pylast.py", line 721, in __init__ 
    self.sign_it() 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pylast.py", line 727, in sign_it 
    self.params['api_sig'] = self._get_signature() 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/pylast.py", line 740, in _get_signature 
    string += self.params[name] 
TypeError: coercing to Unicode: need string or buffer, User found 

मैं रेंगने के लिए pylast lib का उपयोग करें। मैं क्या करना चाहता हूं:

मैं उपयोगकर्ताओं के दोस्तों और दोस्तों के दोस्तों को प्राप्त करना चाहता हूं। त्रुटि तब होती है जब मेरे पास लूप के लिए किसी अन्य में लूप होता है। यहां कोड है:

network = pylast.get_lastfm_network(api_key = API_KEY, api_secret = API_SECRET, username = username, password_hash = password_hash) 
user = network.get_user("vidarnelson") 

friends = user.get_friends(limit='200') 

i = 1 

for friend in friends: 
user_ = network.get_user(friend) 
print '#%d %s' % (i, friend) 
i = i + 1 

for f in user_.get_friends(limit='200'): 
    print f 

कोई सलाह?

अग्रिम धन्यवाद। सादर!

उत्तर

6

ऐसा लगता है कि get_friendsUser ऑब्जेक्ट्स की एक सूची लौटाएगा, इसलिए आपको इसकी प्रविष्टियों पर get_user पर कॉल करने की आवश्यकता नहीं है। बस उपयोग करें:

for friend in friends: 
    for f in friend.get_friends(limit='200'): 
     ... 
+0

आपको बहुत बहुत धन्यवाद। हल किया! :) – tronic

संबंधित मुद्दे

 संबंधित मुद्दे