使用request.post通过python发布多部分表单数据不起作用

使用request.post通过python发布多部分表单数据不起作用,python,post,request,multipartform-data,Python,Post,Request,Multipartform Data,我正试图通过Python2.7使用POSTmultipart/form data。具体来说,我正在上传一个名为'Practice.txt')的文件,格式为FASTA基本上是这种格式: '>1(ENTER)STRINGOFSPECIFICCAPITALLETTERS' 这个网站也有一个文本框,你也可以手动输入数据(我留为空白)。这个数据站点也有复选框选项,我想选择其中的“长度”,“净电荷”,“脂肪族指数”和“疏水性”。页面底部有一个“提交”按钮。 目前,这是我在POST回复中使用的代码

我正试图通过Python2.7使用POST
multipart/form data
。具体来说,我正在上传一个名为
'Practice.txt'
)的文件,格式为
FASTA
基本上是这种格式:

'>1(ENTER)STRINGOFSPECIFICCAPITALLETTERS' 
这个网站也有一个文本框,你也可以手动输入数据(我留为空白)。这个数据站点也有复选框选项,我想选择其中的
“长度”
“净电荷”
“脂肪族指数”
“疏水性”
。页面底部有一个“提交”按钮。
目前,这是我在
POST
回复中使用的代码

files = {'file': ('Practice.txt', open('Practice.txt', 'rb'))}
data = {'Length':'Length', 'Net Charge':'Net Charge', 'Aliphatic Index':'Aliphatic Index','Hydrophobicity':'Hydrophobicity'}
r = requests.post(url, files=files, data=data)
r.text
问题是,当我执行
r.text
时,所有这些都不会返回任何数据。使用浏览器时,网站会计算所有这些内容的值。我得到了
WireShark
,我一直在尝试查看实时提要,以了解我到底在向服务器发送什么,尽管我在逐字逐句地使用代码,但它并没有返回浏览器将返回的值

有人知道为什么会发生这种情况/如何实际获取数据吗?谢谢你的意见

这将起作用:

import requests
import urllib

session = requests.Session()

file={'file':(open('practice.txt','r').read())}

url = 'http://www.camp.bicnirrh.res.in/featcalc/tt1.php'

payload = {
  'length'   :'length',     #Length
  'netcharge':'netcharge',  #Net Charge
  'aliphatic':'aliphatic',  #Aliphatic Index
  'gravy'    :'gravy'       #Hydrophobicity
  }

raw = urllib.urlencode(payload)

response = session.post(url, files=file, data=payload)

print(response.text)
所有选项:

payload = {
  'length'     :'length',      #Length
  'netcharge'  :'netcharge',   #Net Charge
  'amino'      :'amino',       #Amino acid composition
  'aliphatic'  :'aliphatic',   #Aliphatic Index
  'instability':'instability', #Instability Index
  'gravy'      :'gravy',       #Hydrophobicity
  'sec'        :'sec'          #Secondary Structure Propensity
  }

非常感谢你!这成功了!我真的很感激@谢伊很高兴能帮上忙!如果您觉得我的回答对您有用,请随时接受。:-)再次感谢你的光临。我希望你能再帮我一次,提出另一个与上面相同的帖子请求,但由于某些原因,它不是。我做了上面的所有事情,只是做了一些细微的改动——导入请求、导入urllib、会话=请求.session()、文件={'file':(open('Bishop/newdenovo2.txt','r').read())}、url=''payload={“algo[]”:““svm”}(因为我只需要第一个复选框项'svm'),所以原始和响应与上面的相同。我也可以把它作为一个问题发布!再次感谢你!