鱼C论坛

 找回密码
 立即注册
查看: 28774|回复: 9

[已解决]报错AttributeError: 'str' object has no attribute 'read'怎么办?

[复制链接]
发表于 2018-1-1 04:52:48 | 显示全部楼层 |阅读模式
5鱼币
报错AttributeError: 'str' object has no attribute 'read'怎么办?

Python 3.6.4  windows 64

import urllib.request
import urllib.parse
import json

content = input("请输入要翻译的内容:")

url = 'http://fanyi.baidu.com/translate'
data = {}
data['type'] = 'AUTO'
data['i'] = content
data['doctype'] = 'json'
data['xmlVersion'] = '1.6'
data['heyfrom'] = 'fanyi.web'
data['ue'] = 'UTF-8'
data['typoResult'] = 'true'
data = urllib.parse.urlencode(data).encode('utf-8')

response = urllib.request.urlopen(url,data)
html = response.read().decode('utf-8') ####报错在在这里

targrt = json.load(html)
print("翻译结果:%s"%targer['translateResult'][0][0]['tgt'])
最佳答案
2018-1-1 04:52:49
我发现问题了:1.你的URL没有对,需要的并不是浏览器的网址,而是右键审查元素里面的请求URL(或者 request URL),这个你再去看看;这个已经可以造成整个程序无法实现
2.你的变量名target 写成了targrt 和 targer(最后两行),所以如果网址对的话这里还是会报错
3.json.load(html)写错了,正确的是json.loads
好啦祝你成功。鱼币给我吧

最佳答案

查看完整内容

我发现问题了:1.你的URL没有对,需要的并不是浏览器的网址,而是右键审查元素里面的请求URL(或者 request URL),这个你再去看看;这个已经可以造成整个程序无法实现 2.你的变量名target 写成了targrt 和 targer(最后两行),所以如果网址对的话这里还是会报错 3.json.load(html)写错了,正确的是json.loads 好啦祝你成功。鱼币给我吧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-1 04:52:49 | 显示全部楼层    本楼为最佳答案   
我发现问题了:1.你的URL没有对,需要的并不是浏览器的网址,而是右键审查元素里面的请求URL(或者 request URL),这个你再去看看;这个已经可以造成整个程序无法实现
2.你的变量名target 写成了targrt 和 targer(最后两行),所以如果网址对的话这里还是会报错
3.json.load(html)写错了,正确的是json.loads
好啦祝你成功。鱼币给我吧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-1-1 04:58:13 | 显示全部楼层

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-1-1 08:34:17 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-1-1 10:27:51 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-1 11:38:04 | 显示全部楼层
targrt = json.loads(html)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-1-1 12:47:01 | 显示全部楼层
x3269199 发表于 2018-1-1 12:00
我发现问题了:1.你的URL没有对,需要的并不是浏览器的网址,而是右键审查元素里面的请求URL(或者 request ...

你好啊,首先谢谢回复!
然后做了修改并找到了源代码COPY了一下还是不行。
最后请问这个报错
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
是什么意思该怎么处理呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-1 19:23:52 | 显示全部楼层
大嗄鱼 发表于 2018-1-1 12:47
你好啊,首先谢谢回复!
然后做了修改并找到了源代码COPY了一下还是不行。
最后请问这个报错

这个我也不知道哈哈,你百度下吧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-12-18 20:04:27 | 显示全部楼层
°蓝鲤歌蓝 发表于 2018-1-1 11:38
targrt = json.loads(html)

正解
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-12-18 20:05:13 | 显示全部楼层
楼主6楼正解,你这最佳给的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-28 04:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表