Я пытаюсь очистить некоторые данные с помощью Spotify API. Приведенный ниже код работает и возвращает много текста при поиске имени трека «if i can not». Начало выхода из API печатает на моем сайте и выглядит следующим образом:Python Cherrypy: словарь не ведет себя как словарь
Это выглядит как словарь для забавной б»в начале, за исключением. Также я не могу получить к нему доступ, как словарь. Если я пытаюсь
возвращение raw_data [ 'информация']
он бросает ошибку. Аналогично, если я попытаюсь найти его тип (так что возвращаемый тип (raw_data) вместо return raw_data), страница становится пустой.
Есть ли способ сохранить результат из data.read() в виде словаря? Использование
вызывает ошибку.
#!/usr/local/bin/python3.2
# -*- coding: utf-8 -*-
import cherrypy
import numpy as np
import urllib.request
class Root(object):
@cherrypy.expose
def index(self):
a_query = Query()
text = a_query.search()
return '''<html>
Welcome to Spoti.py! %s
</html>''' %text
class Query():
def __init__(self):
self.qstring = '''if i can't'''
def space_to_plus(self):
'''takes the instance var qstring
replaces ' ' with '+'
-----------------------
returns nothing'''
self.qstring = self.qstring.replace(' ', '+')
def search(self):
self.space_to_plus()
url = 'http://ws.spotify.com/search/1/track.json?q=' + self.qstring
data = urllib.request.urlopen(url)
raw_data = data.read()
#return raw_data['info']
#return type(raw_data)
return raw_data
cherrypy.config.update({
'environment': 'production',
'log.screen': False,
'server.socket_host': '127.0.0.1',
'server.socket_port': 15850,
#'tools.encode.on': True,
#'tools.encode.encoding': 'utf-8',
})
cherrypy.config.update({'tools.sessions.on': True})
cherrypy.quickstart(Root())
Спасибо! Все, что мне нужно было добавить, это info_dict = json.loads (raw_data.decode ('utf-8')), и он отлично работал! –