鱼C论坛

 找回密码
 立即注册
查看: 2087|回复: 13

[已解决]Python 054讲代码不能用了

[复制链接]
发表于 2018-1-1 02:18:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如图片所示,请问大佬们有什么解决方案吗?
以下是代码内容
  1. import urllib.request
  2. import urllib.parse
  3. import json

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


  5. url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
  6. data ={}
  7. data['type'] = 'AUTO'
  8. data['i'] = content
  9. data['doctype'] = 'json'
  10. data['xmlVersion'] = '2.1'
  11. data['keyfrom'] = 'fanyi.web'
  12. data['ue'] = 'UTF-8'
  13. data['tyoResult'] = 'true'

  14. urllib.parse.urlencode(data).encode('utf-8')

  15. response = urllib.request.urlopen(url,data)
  16. html = response.read().decode('utf-8')
  17. target = json.loads(html)
  18. print('翻译结果:%s' % (target['translateResult'][0][0]['tgt']))
复制代码

最佳答案
2018-1-4 20:02:13
问题:
1._o 没去掉
2.urllib.parse.urlencode(data).encode('utf-8') 没有对象,应该是 data = urllib.parse.urlencode(data).encode('utf-8')
3.data字典里的数据不够

  1. import urllib.request
  2. import urllib.parse
  3. import json

  4. url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
  5. content = input("请输入需要翻译的内容:")
  6. data = {}
  7. data['i'] = content
  8. data['from'] = 'AUTO'
  9. data['to'] = 'AUTO'
  10. data['smartresult'] = 'dict'
  11. data['client'] = 'fanyideskweb'
  12. data['salt'] = '1512442744676'
  13. data['sign'] = '7f253658d7f8e3338edabe1758620e1a'
  14. data['doctype'] = 'json'
  15. data['version'] = '2.1'
  16. data['keyfrom'] = 'fanyi.web'
  17. data['action'] = 'FY_BY_CLICKBUTTION'
  18. data['typoResult'] = 'false'

  19. data =urllib.parse.urlencode(data).encode('utf-8')

  20. response = urllib.request.urlopen(url,data)
  21. html = response.read().decode('utf-8')
  22.   
  23. target = json.loads(html)
  24. result = target['translateResult'][0][0]['tgt']
  25. print(result)
  26. print('翻译结果是:%s'%(target['translateResult'][0][0]['tgt']))
复制代码
4.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-1-1 11:39:19 | 显示全部楼层
http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
把红色部分去掉
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-1 13:35:46 | 显示全部楼层
期待答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-4 19:41:55 | 显示全部楼层
°蓝鲤歌蓝 发表于 2018-1-1 11:39
http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
把红色部分去掉

一样不行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-4 19:42:25 | 显示全部楼层
这个是字典错误
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-4 19:43:55 | 显示全部楼层

data 里的数据不够完整吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-4 20:02:13 | 显示全部楼层    本楼为最佳答案   
问题:
1._o 没去掉
2.urllib.parse.urlencode(data).encode('utf-8') 没有对象,应该是 data = urllib.parse.urlencode(data).encode('utf-8')
3.data字典里的数据不够

  1. import urllib.request
  2. import urllib.parse
  3. import json

  4. url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
  5. content = input("请输入需要翻译的内容:")
  6. data = {}
  7. data['i'] = content
  8. data['from'] = 'AUTO'
  9. data['to'] = 'AUTO'
  10. data['smartresult'] = 'dict'
  11. data['client'] = 'fanyideskweb'
  12. data['salt'] = '1512442744676'
  13. data['sign'] = '7f253658d7f8e3338edabe1758620e1a'
  14. data['doctype'] = 'json'
  15. data['version'] = '2.1'
  16. data['keyfrom'] = 'fanyi.web'
  17. data['action'] = 'FY_BY_CLICKBUTTION'
  18. data['typoResult'] = 'false'

  19. data =urllib.parse.urlencode(data).encode('utf-8')

  20. response = urllib.request.urlopen(url,data)
  21. html = response.read().decode('utf-8')
  22.   
  23. target = json.loads(html)
  24. result = target['translateResult'][0][0]['tgt']
  25. print(result)
  26. print('翻译结果是:%s'%(target['translateResult'][0][0]['tgt']))
复制代码
1.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-5 10:56:58 | 显示全部楼层
请各位道友帮忙看一下

代码:
  1. import urllib.request
  2. import urllib.parse  #解析功能
  3. import json

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

  5. url ="http://fanyi.youdao.com/?keyfrom=fanyi-new.logo"
  6. data = {}
  7. data['i'] = content
  8. data['from'] = 'AUTO'
  9. data['to'] = 'AUTO'
  10. data['smartresult'] = 'dict'
  11. data['client'] = 'fanyideskweb'
  12. data['salt'] = '1515113013417'
  13. data['sign'] = '4df2b99bbd8297bee8ce9f0bf4347917'
  14. data['doctype'] = 'json'
  15. data['version'] = '2.1'
  16. data['keyfrom'] = 'fanyi.web'
  17. data['action'] = 'FY_BY_CLICKBUTTION'
  18. data['typoResult'] = 'false'

  19. data = urllib.parse.urlencode(data).encode('utf-8')

  20. response = urllib.request.urlopen(url,data)

  21. html = response.read().decode('utf-8')

  22. #print(html)

  23. #json.loads(html)
  24. target = json.loads(html)
  25. #type(target)

  26. #target['translateResult'][0][0]['tgt']

  27. ptint("翻译结果:%s"%(target['translateResult'][0][0]['tgt']))
复制代码


错误信息:
Traceback (most recent call last):
  File "C:\Users\ok\Desktop\translate.py", line 31, in <module>
    target = json.loads(html)
  File "E:\python3\lib\json\__init__.py", line 355, in loads
    return _default_decoder.decode(s)
  File "E:\python3\lib\json\decoder.py", line 340, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "E:\python3\lib\json\decoder.py", line 358, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

这是版本兼容性的问题吗???

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

使用道具 举报

发表于 2018-1-5 12:36:35 | 显示全部楼层
john。 发表于 2018-1-5 10:56
请各位道友帮忙看一下

代码:

不,是 url  的问题。
改成 url ="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule" 就可以了,还有你最后一行的 print 写错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-5 17:28:01 | 显示全部楼层
关于有道翻译的网址,真的很神奇。。。
我是直接在QQ浏览器,火狐浏览器的网址上复制粘贴就不行
想问一下是我复制的地方有问题,还是浏览器的原因呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-5 21:52:35 | 显示全部楼层
°蓝鲤歌蓝 发表于 2018-1-4 20:02
问题:
1._o 没去掉
2.urllib.parse.urlencode(data).encode('utf-8') 没有对象,应该是 data = urllib.p ...

为什么要去掉_o?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-5 23:51:56 | 显示全部楼层

具体原因我不知道
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-6 07:59:32 | 显示全部楼层

内部api是没有的,这个是逗你的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-6 11:48:05 | 显示全部楼层
新手·ing 发表于 2018-1-6 07:59
内部api是没有的,这个是逗你的

oooo
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 07:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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