Python 3.x 将OpenRefineAPI与python3和请求模块一起使用
我正在尝试使用发出请求来创建一个项目(类似于python3,但使用python3) 到目前为止,我尝试的是:Python 3.x 将OpenRefineAPI与python3和请求模块一起使用,python-3.x,python-requests,openrefine,Python 3.x,Python Requests,Openrefine,我正在尝试使用发出请求来创建一个项目(类似于python3,但使用python3) 到目前为止,我尝试的是: data = { "project-name":"toto", "project-file": { "fd": open(project_file, "rb"), "filename": project_file, } } response = requests.post(self.server + '/comman
data = {
"project-name":"toto",
"project-file": {
"fd": open(project_file, "rb"),
"filename": project_file,
}
}
response = requests.post(self.server + '/command/core/create-project-from-upload', data=data)
我还尝试使用了请求
的文件
参数:
data = {"project-name":"toto"}
files = {'project-file': (project_file, open(project_file, "rb"))}
response = requests.post(self.server + '/command/core/create-project-from-upload', data=data, files=files)
在这两种情况下,我都会收到一个200响应,但没有按照预期从文档中提供项目ID,而是提供一个HTML正文:
<!doctype html>
<!--
Copyright 2010, Google Inc.
All rights reserved.
[...]
<body>
<div id="header">
<a id="app-home-button" href="./"><img alt="OpenRefine" src="images/logo-openrefine-30.png" width="129" height="29" /></a>
<div id="project-title">
<span id="project-name-button" class="app-path-section"></span>
<a id="project-permalink-button" href="javascript:{}" class="secondary"></a>
</div>
<div id="project-controls">
<a href="./" class="button" target="_blank"><span id="or-proj-open"></span></a>
<a class="button" bind="exportButton" id="export-button" href="#export"><span class="button-menu" id="or-proj-export"></span></a>
<a href="https://github.com/OpenRefine/OpenRefine/wiki/Documentation-For-Users" target="_blank" class="button"><span id="or-proj-help"></span></a>
</div>
</div>
<div id="loading-message"><img src="images/large-spinner.gif" /> <span id="or-proj-starting"></span></div>
<div id="body">
<div bind="leftPanelDiv" id="left-panel">
<div bind="leftPanelTabs" class="refine-tabs">
<ul>
<li><a href="#refine-tabs-facets" id="or-proj-facFil"></a></li>
<li><a href="#refine-tabs-history" bind="historyTabHeader" id="or-proj-undoRedo"></a></li>
</ul>
<div id="refine-tabs-facets" bind="facetPanelDiv" id="facet-panel"></div>
<div id="refine-tabs-history" bind="historyPanelDiv" id="history-panel"></div>
</div>
</div>
<div bind="rightPanelDiv" id="right-panel">
<div bind="toolPanelDiv" id="tool-panel">
<div bind="summaryBarDiv" id="summary-bar">
<!-- row/record counts -->
</div>
<div bind="extensionBarDiv" id="extension-bar">
<span id="or-proj-ext"></span> <span bind="menuContainer" id="extension-bar-menu-container"></span>
</div>
</div>
<div bind="viewPanelDiv" id="view-panel"></div>
</div>
<div bind="processPanelDiv" id="notification-container"></div>
</div>
发生了什么事?为什么结果在这里可用而在响应对象中不可用?您是否检查了URL是否正确?您可以通过
response.request.url
访问它。似乎地址存在,但它不是您真正想要访问的(因此是html,而不是JSON)。感谢您的提示,我可以更接近结果,即使我还不明白原因……您是否已经了解了响应
对象的其余部分?你可以找到它的属性哦,好的,那么看看历史
,我的请求似乎被重定向到了新的URL。从医生那里看不太明显。。。感谢@nlsdfnbch的帮助!您是否检查过URL是否正确?您可以通过response.request.url
访问它。似乎地址存在,但它不是您真正想要访问的(因此是html,而不是JSON)。感谢您的提示,我可以更接近结果,即使我还不明白原因……您是否已经了解了响应
对象的其余部分?你可以找到它的属性哦,好的,那么看看历史
,我的请求似乎被重定向到了新的URL。从医生那里看不太明显。。。感谢@nlsdfnbch的帮助!
In [15]: response.request.url
Out[15]: 'http://127.0.0.1:3333/project?project=1533970971677'