将OpenRefine API与python3和请求模块一起使用

时间:2017-06-19 14:19:58

标签: python-3.x python-requests openrefine

我正在尝试使用OpenRefine API发出创建项目的请求(类似于this implementation但是使用python3)

到目前为止我尝试的是:

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)

我还尝试使用files的{​​{1}}参数:

requests

在这两种情况下,我都会收到200响应但不提供文档中预期的项目ID,而是提供HTML正文:

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)

我错过了什么?

修改

在@nlsdfnbch评论之后,我需要得到的参数似乎包含在:

<!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>

发生了什么?为什么结果在此处可用而不在响应对象中?

0 个答案:

没有答案
相关问题