鱼C论坛

 找回密码
 立即注册
查看: 1840|回复: 4

[已解决]有点问题想请教

[复制链接]
发表于 2020-10-31 01:10:34 | 显示全部楼层 |阅读模式
10鱼币
把data放回去就可以用了,但觉得这样感觉不美观,想改改,鱼油们有无好办法?
ps:前几天刚刚学了爬虫,想了好像可以和easygui结合一下,问题我都标注了
报错信息:'bytes' object does not support item assignment  /“bytes”对象不支持项分配
  
import easygui,urllib.request,sys,json

easygui.msgbox('使用马强翻译1.0(结果来源于有道翻译)')

url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
data={} #把这个放到外面的话,程序只能用一次,第二次就会报错
while True:
    #想保留这两行
    dat=easygui.enterbox('请输入:',title='马强翻译1.0')
    data['i']= dat

    #想把这些放到while的外面
    data['from']='AUTO'
    data['to']='AUTO'
    data['smartresult']='dict'
    data['client']='fanyideskweb'
    data['salt']='16038541804405'
    data['sign']='a0c52b875aa481825e8411c6d7b0f6b0'
    data['lts']='1603854180440'
    data['bv']='8269b35cc1594b7635631cdd3a301112'
    data['doctype']='json'
    data['version']='2.1'
    data['keyfrom']='fanyi.web'
    data['action']='FY_BY_REALTlME'
   
    data=urllib.parse.urlencode(data).encode('utf-8') #编码

    req=urllib.request.urlopen(url,data)
    html=req.read().decode('utf-8')

    target=json.loads(html)
    msg1='翻译的结果是:',target['translateResult'][0][0]['tgt']

    easygui.msgbox(msg1,title='翻译结果',ok_button='学废了!')
   
    if easygui.ccbox('是否要继续?'):
        pass
    else:
        sys.exit(0)
   

   
   
最佳答案
2020-10-31 01:10:35
  1. import easygui,urllib.request,sys,json

  2. easygui.msgbox('使用马强翻译1.0(结果来源于有道翻译)')

  3. url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
  4. data={'from': 'AUTO', 'to': 'AUTO', 'smartresult': 'dict', 'client': 'fanyideskweb', 'salt': '16038541804405', 'sign': 'a0c52b875aa481825e8411c6d7b0f6b0', 'lts': '1603854180440', 'bv': '8269b35cc1594b7635631cdd3a301112', 'doctype': 'json', 'version': '2.1', 'keyfrom': 'fanyi.web', 'action': 'FY_BY_REALTlME'} #把这个放到外面的话,程序只能用一次,第二次就会报错
  5. while True:
  6.     #想保留这两行
  7.     dat=easygui.enterbox('请输入:',title='马强翻译1.0')
  8.     data['i']= dat
  9.    
  10.     data=urllib.parse.urlencode(data).encode('utf-8') #编码

  11.     req=urllib.request.urlopen(url,data)
  12.     html=req.read().decode('utf-8')

  13.     target=json.loads(html)
  14.     msg1='翻译的结果是:',target['translateResult'][0][0]['tgt']

  15.     easygui.msgbox(msg1,title='翻译结果',ok_button='学废了!')
  16.    
  17.     if easygui.ccbox('是否要继续?'):
  18.        data = {'from': 'AUTO', 'to': 'AUTO', 'smartresult': 'dict', 'client': 'fanyideskweb', 'salt': '16038541804405', 'sign': 'a0c52b875aa481825e8411c6d7b0f6b0', 'lts': '1603854180440', 'bv': '8269b35cc1594b7635631cdd3a301112', 'doctype': 'json', 'version': '2.1', 'keyfrom': 'fanyi.web', 'action': 'FY_BY_REALTlME'}
  19.         pass
  20.     else:
  21.         sys.exit(0)
复制代码

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

使用道具 举报

发表于 2020-10-31 01:10:35 | 显示全部楼层    本楼为最佳答案   
  1. import easygui,urllib.request,sys,json

  2. easygui.msgbox('使用马强翻译1.0(结果来源于有道翻译)')

  3. url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
  4. data={'from': 'AUTO', 'to': 'AUTO', 'smartresult': 'dict', 'client': 'fanyideskweb', 'salt': '16038541804405', 'sign': 'a0c52b875aa481825e8411c6d7b0f6b0', 'lts': '1603854180440', 'bv': '8269b35cc1594b7635631cdd3a301112', 'doctype': 'json', 'version': '2.1', 'keyfrom': 'fanyi.web', 'action': 'FY_BY_REALTlME'} #把这个放到外面的话,程序只能用一次,第二次就会报错
  5. while True:
  6.     #想保留这两行
  7.     dat=easygui.enterbox('请输入:',title='马强翻译1.0')
  8.     data['i']= dat
  9.    
  10.     data=urllib.parse.urlencode(data).encode('utf-8') #编码

  11.     req=urllib.request.urlopen(url,data)
  12.     html=req.read().decode('utf-8')

  13.     target=json.loads(html)
  14.     msg1='翻译的结果是:',target['translateResult'][0][0]['tgt']

  15.     easygui.msgbox(msg1,title='翻译结果',ok_button='学废了!')
  16.    
  17.     if easygui.ccbox('是否要继续?'):
  18.        data = {'from': 'AUTO', 'to': 'AUTO', 'smartresult': 'dict', 'client': 'fanyideskweb', 'salt': '16038541804405', 'sign': 'a0c52b875aa481825e8411c6d7b0f6b0', 'lts': '1603854180440', 'bv': '8269b35cc1594b7635631cdd3a301112', 'doctype': 'json', 'version': '2.1', 'keyfrom': 'fanyi.web', 'action': 'FY_BY_REALTlME'}
  19.         pass
  20.     else:
  21.         sys.exit(0)
复制代码

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

使用道具 举报

发表于 2020-10-31 06:00:20 | 显示全部楼层
这样可行?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-10-31 09:14:57 | 显示全部楼层

刚发完问题就想到了,可以用一个函数来搞,而且你那样也不太和我的要求
  1. import easygui,urllib.request,sys,json

  2. easygui.msgbox('使用马强翻译1.0(结果来源于有道翻译)')

  3. def mq():
  4.     data={}
  5.     dat=easygui.enterbox('请输入:',title='马强翻译1.0')
  6.     data['i']= dat
  7.     data['from']='AUTO'
  8.     data['to']='AUTO'
  9.     data['smartresult']='dict'
  10.     data['client']='fanyideskweb'
  11.     data['salt']='16038541804405'
  12.     data['sign']='a0c52b875aa481825e8411c6d7b0f6b0'
  13.     data['lts']='1603854180440'
  14.     data['bv']='8269b35cc1594b7635631cdd3a301112'
  15.     data['doctype']='json'
  16.     data['version']='2.1'
  17.     data['keyfrom']='fanyi.web'
  18.     data['action']='FY_BY_REALTlME'
  19.     return data
  20.    
  21. url='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'

  22. while True:
  23.     data=mq()
  24.     data=urllib.parse.urlencode(data).encode('utf-8') #编码
  25.    
  26.     req=urllib.request.urlopen(url,data)
  27.     html=req.read().decode('utf-8')

  28.     target=json.loads(html)
  29.     msg1='翻译的结果是:',target['translateResult'][0][0]['tgt']

  30.     easygui.msgbox(msg1,title='翻译结果',ok_button='学废了!')
  31.    
  32.     if easygui.ccbox('是否要继续?'):
  33.         pass
  34.     else:
  35.         sys.exit(0)
  36.    

  37.    
  38.    
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-11-2 00:36:06 | 显示全部楼层
大马强 发表于 2020-10-31 09:14
刚发完问题就想到了,可以用一个函数来搞,而且你那样也不太和我的要求

对,用短小精悍的函数来处理,也真是不错的主意。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-29 01:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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