Использование Python для PUT PMML

У меня есть простой файл PMML, который я бы хотел использовать для PUT сервера. Вот вызов curl :

 curl -X PUT --data-binary @DecisionTreeIris.pmml -H "Content-type: text/xml" http://localhost:8080/openscoring/model/DecisionTreeIris 

Вот файл PMML:

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <PMML xmlns="http://www.dmg.org/PMML-4_1" version="4.1"> <Header copyright="Copyright (c) 2013 Vfed" description="RPart Decision Tree Model"> <Extension extender="Rattle/PMML" name="user" value="Vfed"/> <Application name="Rattle/PMML" version="1.2.34r27"/> <Timestamp>2013-05-15 22:02:28</Timestamp> </Header> <DataDictionary numberOfFields="5"> <DataField name="Species" optype="categorical" dataType="string"> <Value value="setosa"/> <Value value="versicolor"/> <Value value="virginica"/> </DataField> <DataField name="Sepal.Length" optype="continuous" dataType="double"/> <DataField name="Sepal.Width" optype="continuous" dataType="double"/> <DataField name="Petal.Length" optype="continuous" dataType="double"/> <DataField name="Petal.Width" optype="continuous" dataType="double"/> </DataDictionary> <TreeModel modelName="RPart_Model" functionName="classification" algorithmName="rpart" missingValueStrategy="defaultChild" splitCharacteristic="binarySplit"> <MiningSchema> <MiningField name="Species" usageType="predicted"/> <MiningField name="Sepal.Length" usageType="active"/> <MiningField name="Sepal.Width" usageType="active"/> <MiningField name="Petal.Length" usageType="active"/> <MiningField name="Petal.Width" usageType="active"/> </MiningSchema> <Output> <OutputField name="Predicted_Species" optype="categorical" dataType="string" feature="predictedValue"/> <OutputField name="Probability_setosa" optype="continuous" dataType="double" feature="probability" value="setosa"/> <OutputField name="Probability_versicolor" optype="continuous" dataType="double" feature="probability" value="versicolor"/> <OutputField name="Probability_virginica" optype="continuous" dataType="double" feature="probability" value="virginica"/> <!-- Custom output field --> <OutputField name="Node_Id" optype="categorical" dataType="string" feature="entityId"/> </Output> <Node id="1" score="setosa" recordCount="150.0" defaultChild="3"> <True/> <ScoreDistribution value="setosa" recordCount="50.0" confidence="0.333333333333333"/> <ScoreDistribution value="versicolor" recordCount="50.0" confidence="0.333333333333333"/> <ScoreDistribution value="virginica" recordCount="50.0" confidence="0.333333333333333"/> <Node id="2" score="setosa" recordCount="50.0"> <CompoundPredicate booleanOperator="surrogate"> <SimplePredicate field="Petal.Length" operator="lessThan" value="2.45"/> <SimplePredicate field="Petal.Width" operator="lessThan" value="0.8"/> <SimplePredicate field="Sepal.Length" operator="lessThan" value="5.45"/> <SimplePredicate field="Sepal.Width" operator="greaterOrEqual" value="3.35"/> </CompoundPredicate> <ScoreDistribution value="setosa" recordCount="50.0" confidence="1.0"/> <ScoreDistribution value="versicolor" recordCount="0.0" confidence="0.0"/> <ScoreDistribution value="virginica" recordCount="0.0" confidence="0.0"/> </Node> <Node id="3" score="versicolor" recordCount="100.0" defaultChild="7"> <CompoundPredicate booleanOperator="surrogate"> <SimplePredicate field="Petal.Length" operator="greaterOrEqual" value="2.45"/> <SimplePredicate field="Petal.Width" operator="greaterOrEqual" value="0.8"/> <SimplePredicate field="Sepal.Length" operator="greaterOrEqual" value="5.45"/> <SimplePredicate field="Sepal.Width" operator="lessThan" value="3.35"/> </CompoundPredicate> <ScoreDistribution value="setosa" recordCount="0.0" confidence="0.0"/> <ScoreDistribution value="versicolor" recordCount="50.0" confidence="0.5"/> <ScoreDistribution value="virginica" recordCount="50.0" confidence="0.5"/> <Node id="6" score="versicolor" recordCount="54.0"> <CompoundPredicate booleanOperator="surrogate"> <SimplePredicate field="Petal.Width" operator="lessThan" value="1.75"/> <SimplePredicate field="Petal.Length" operator="lessThan" value="4.75"/> <SimplePredicate field="Sepal.Length" operator="lessThan" value="6.15"/> <SimplePredicate field="Sepal.Width" operator="lessThan" value="2.95"/> </CompoundPredicate> <ScoreDistribution value="setosa" recordCount="0.0" confidence="0.0"/> <ScoreDistribution value="versicolor" recordCount="49.0" confidence="0.907407407407407"/> <ScoreDistribution value="virginica" recordCount="5.0" confidence="0.0925925925925926"/> </Node> <Node id="7" score="virginica" recordCount="46.0"> <CompoundPredicate booleanOperator="surrogate"> <SimplePredicate field="Petal.Width" operator="greaterOrEqual" value="1.75"/> <SimplePredicate field="Petal.Length" operator="greaterOrEqual" value="4.75"/> <SimplePredicate field="Sepal.Length" operator="greaterOrEqual" value="6.15"/> <SimplePredicate field="Sepal.Width" operator="greaterOrEqual" value="2.95"/> </CompoundPredicate> <ScoreDistribution value="setosa" recordCount="0.0" confidence="0.0"/> <ScoreDistribution value="versicolor" recordCount="1.0" confidence="0.0217391304347826"/> <ScoreDistribution value="virginica" recordCount="45.0" confidence="0.978260869565217"/> </Node> </Node> </Node> </TreeModel> </PMML> 

Не уверен, что это имеет значение, но я использую сервер подсчета очков Openencoring PMML.

One Solution collect form web for “Использование Python для PUT PMML”

Я бы рекомендовал использовать библиотеку запросов Kenneth Reitz ( GitHub и Docs ).

В частности, есть пример того, как файлы POST. Используйте это, чтобы построить то, что вам нужно.

Я просто здесь, но я бы попробовал следующее:

 import requests url = 'http://localhost:8080/openscoring/model/DecisionTreeIris' files = {'file': open('/path/to/file/DecisionTreeIris.pmml', 'rb')} response = requests.post(url, files=files) 

Вы также можете установить заголовки или что-нибудь еще, что вам нужно. запросы мертвы просты в использовании и являются благом для сообщества Python. Документация отличная, и вы можете легко найти примеры с помощью поиска Google / Bing / DuckDuckGo.

Надеюсь, это поможет!

  • Нет модуля с именем http_client error при попытке запустить django с django rest framework
  • Рамки для реализации веб-службы REST в Django
  • Как я могу войти в API для просмотра Django Rest, когда у меня есть пользовательская модель auth?
  • Создание API RESTful с использованием Flask?
  • Ошибка аутентификации Django + Auth0 JWT
  • Должен ли я использовать аутентификацию JWT или Basic Token в Django Rest Framework?
  • Многократные и сложные конечные точки API RESTful API
  • API RESTful и Google Analytics
  • Django rest framework_classes метода ViewSet
  • REST: API Glassdoor требует использования User-Agent в заголовке
  • Испытательная среда с помощью API REST API
  •  
    Interesting Posts for Van-Lav

    У словарей в Python есть единственное значение в редакторе?

    Как подождать, пока Excel не вычислит формулы, прежде чем продолжить с win32com

    Нерегулярные, несмежные периоды в Пандах

    Как мне запоминать дорогостоящие вычисления на объектах модели Django?

    Завершающие URL-адреса регистрации / регистрации Django-allauth с настраиваемым URL-адресом / страницами

    читать многострочную строку в python

    Как я могу захватить возвращаемое значение shutil.copy () в Python (в DOS)?

    typeError: isinstance () arg 2 должен быть типом или кортежем типов >>>

    Избегание множественных ссылок на один и тот же объект в Django ORM

    Как один-горячий-кодировать из столбца pandas, содержащего список?

    индексирование / нарезка в массиве numpy для его изменения

    найти конкретный текст в beautifulsoup

    Python / Pillow: как масштабировать изображение

    Neo4J / py2neo – запрос на основе курсора?

    Можно ли сканировать для Wi-Fi с помощью Python?

    Python - лучший язык программирования в мире.