Python3 - TypeError:JSON对象必须是str,而不是' bytes'

时间:2016-01-05 19:38:31

标签: json python-3.x urllib

我是一个python初学者(到目前为止只使用python3),我试图向我的同学提供一些代码来运行curses库。

我从python / curses教程获得了代码,它在python2中运行没有问题。在python3中它没有,我在标题中得到错误。 通过搜索已经提出的问题,我找到了几个解决方案,但由于我是一个绝对的编码初学者,我不知道如何在我的特定代码中执行这些。

这是在python2中使用的代码:

import curses
from urllib2 import urlopen
from HTMLParser import HTMLParser
from simplejson import loads


def get_new_joke():

joke_json = loads(urlopen('http://api.icndb.com/jokes/random').read())
return HTMLParser().unescape(joke_json['value']['joke']).encode('utf-8')

在python3中使用新模块:

import curses
import json
import urllib
from html.parser import HTMLParser



def get_new_joke():

    joke_json = loads(urlopen('http://api.icndb.com/jokes/random').read())
    return HTMLParser().unescape(joke_json['value']['joke']).encode('utf-8')

此外,我尝试将此解决方案包含在我的代码中: Python 3, let json object accept bytes or let urlopen output strings

response = urllib.request.urlopen('http://api.icndb.com/jokes/random')
str_response = joke_json.readall().decode('utf-8')
obj = json.loads(str_response)

现在试了几个小时,但它告诉我" json"没有定义。

0 个答案:

没有答案