Pythonを使用したRubyサービスへの投稿

サイモンザキャット

Railsアプリにデータを投稿するPythonスクリプトがあります。私が抱えていると思われる問題は、パラメータが正しくフォーマットされていないことです。Pythonでパラメータを構築する適切な方法はどのようになりますか?

Pythonコード:

request = urllib.urlencode(dict({'temperature_reading': {'CelciusReading':temperature}}))

印刷リクエスト

Railsサーバーが取得しているログファイルの内容:

Parameters: {"temperature_reading"=>"{'CelciusReading': 42.25}"}

Webページ自体から投稿したときのログは次のようになります。

Parameters: {"utf8"=>"✓", "authenticity_token"=>"MMbvXa3xA6NFU8Mf1Y2dagpm3GuBP3ZApdFXI55Ql00=", "temperature_reading"=>{"CelciusReading"=>"42.25"}, "commit"=>"Create Temperature reading"}

何が適切に行われているのかを理解していれば、Pythonは'CelciusReading': 42.25それをあるべきときにフォーマットしているよう'CelciusReading'=>42.25です

以下は、それが誰かに役立つ場合のエラーログです。

2014-08-23T00:26:05.485205 + 00:00 heroku [router]:at = info method = POST path = "/ Temperature_readings" host = smoke-watch.herokuapp.com request_id = e5641fd5-4ead-446d-883a-c800b05f4f11 fwd = "98.17.210.4" dyno = web.1 connect = 1ms service = 22ms status = 500 bytes = 489 2014-08-23T00:26:05.480780 + 00:00 app [web.1]:
app / controllers / temperature_readings_controller。 rb:73:in create '2014-08-23T00:26:05.480778 + 00:00 app [web.1]:NoMethodError( "{' CelciusReading ':42.25}":Stringの未定義のメソッド `permit'):2014- 08-23T00:26:05.480796 + 00:00 app [web.1]:2014-08-23T00:26:05.477662 + 00:00 app [web.1]:TemperatureReadingsController#createによるHTMLとしての処理temperature_reading_params' 2014-08-23T00:26:05.480798+00:00 app[web.1]: 2014-08-23T00:26:05.466259+00:00 app[web.1]: Started POST "/temperature_readings" for 98.17.210.4 at 2014-08-23 00:26:05 +0000 2014-08-23T00:26:05.480775+00:00 app[web.1]: 2014-08-23T00:26:05.480794+00:00 app[web.1]:
app/controllers/temperature_readings_controller.rb:28:in

助けてくれてありがとう


データ型を一致させるために温度を文字列として送信することをKenHampson考えました。私はそれを試しましたが、それでもそれが好きではないようです:

2014-08-23T11:56:58.602452 + 00:00 app [web.1]:2014-08-23 11:56:58 + 00002014-08-23T11:56に98.17.210.4のPOST "/ temperature_readings"を開始しました:58.741053 + 00:00 app [web.1]:TemperatureReadingsController#createによるHTMLとしての処理2014-08-23T11:56:58.741064 + 00:00 app [web.1]:パラメーター:{"temperature_reading" => "{ 'CelciusReading':'38 .875 '} "} 2014-08-23T11:56:58.759571 + 00:00 app [web.1]:18ミリ秒で500内部サーバーエラーを完了しました2014-08-23T11:56:58.760521 + 00:00 app [web.1]:2014-08-23T11:56:58.760523 + 00:00 app [web.1]:NoMethodError(undefined method Temperature_reading_params '2014-08-23T11:56:58.760528 + 00:00 app [web。 1]:2014-08-23T11:56:58.760526 + 00:00 app [web.1]:app / controllers / Temperature_readings_controller.rb :28:in `create 'permit' for "{'CelciusReading': '38.875'}":String): 2014-08-23T11:56:58.760527+00:00 app[web.1]: 2014-08-23T11:56:58.760525+00:00 app[web.1]:
app/controllers/temperature_readings_controller.rb:73:in

Pythonスクリプトとは異なることに気付いたもう一つの点は、引用符がCelciusReading要素を囲んでいることです:" {'CelciusReading':'38 .875 '} "対Rubyは次のように見えます:{"CelciusReading" => "42.25"}

サイモンザキャット

jsonで投稿する方が簡単な方法であることがわかりました。以下は、jsonリクエストのデータをフォーマットした方法です。

data = {
        'temperature_reading': {'CelciusReading': temperature}
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Signalrを使用したWindowsサービス接続へのWCFサービス

分類Dev

PowerShellを使用したSOAPWebサービスへのアクセス

分類Dev

MSIを使用したEntityFrameworkへのアプリサービス

分類Dev

SOAPとPHPを使用したWebサービスへの接続

分類Dev

mysqliを使用したデータベースへの投稿

分類Dev

RESTサービスへのJQueryの投稿

分類Dev

Pythonを使用したBluemixの機械学習サービスへのリクエスト

分類Dev

LaravelのWebサービスへのput / postを使用したデータの送信

分類Dev

SSLを使用したWebサービスへのアクセスエラー

分類Dev

Postmanを使用したノードサーバーへの投稿エラー

分類Dev

複数の投稿リソースを使用したレストレットサービス

分類Dev

ManagedIdentityを使用したAzureでのアプリサービスからアプリサービスへの認証

分類Dev

groovywsliteを使用したws-securedsoapwebsサービスへのアクセス

分類Dev

Flaskを使用した別のウェブサービスへのプロキシ

分類Dev

localhostからFireFoxを使用したRESTサービスへのXMLHttpRequestのCORS問題

分類Dev

SpringBootを使用したAWSへのRESTfulサービスのデプロイ

分類Dev

curlを使用したdjango投稿ビューのテスト

分類Dev

ExchangeWebサービスとWindows認証を使用したExchangeServerへの接続

分類Dev

CQ5.5resourceTypeを使用したサーブレットへの投稿

分類Dev

WireMockを使用したサードパーティサービスへのスタブコール

分類Dev

cURLを使用したデータベースへの投稿に関する問題

分類Dev

kubernetesnginxを介したgRPCサービスへの接続

分類Dev

AngularJSで$ httpサービスを使用して複数の配列を投稿する

分類Dev

SQLAlchemyを使用したAWSAuroraサーバーレスMySQLへのPython接続

分類Dev

SpringCloudコネクターを使用したCloudFoundryユーザー提供サービスへのアクセス

分類Dev

RxSwiftを使用したサービスクラスへの同時アクセスの制限

分類Dev

MQTTサービスを使用したサーバーの再起動

分類Dev

Axiosを使用したSheetlabsAPIへの投稿

分類Dev

Pythonのサービスアカウントを介したGoogleCloudStorageへのアクセス許可

Related 関連記事

  1. 1

    Signalrを使用したWindowsサービス接続へのWCFサービス

  2. 2

    PowerShellを使用したSOAPWebサービスへのアクセス

  3. 3

    MSIを使用したEntityFrameworkへのアプリサービス

  4. 4

    SOAPとPHPを使用したWebサービスへの接続

  5. 5

    mysqliを使用したデータベースへの投稿

  6. 6

    RESTサービスへのJQueryの投稿

  7. 7

    Pythonを使用したBluemixの機械学習サービスへのリクエスト

  8. 8

    LaravelのWebサービスへのput / postを使用したデータの送信

  9. 9

    SSLを使用したWebサービスへのアクセスエラー

  10. 10

    Postmanを使用したノードサーバーへの投稿エラー

  11. 11

    複数の投稿リソースを使用したレストレットサービス

  12. 12

    ManagedIdentityを使用したAzureでのアプリサービスからアプリサービスへの認証

  13. 13

    groovywsliteを使用したws-securedsoapwebsサービスへのアクセス

  14. 14

    Flaskを使用した別のウェブサービスへのプロキシ

  15. 15

    localhostからFireFoxを使用したRESTサービスへのXMLHttpRequestのCORS問題

  16. 16

    SpringBootを使用したAWSへのRESTfulサービスのデプロイ

  17. 17

    curlを使用したdjango投稿ビューのテスト

  18. 18

    ExchangeWebサービスとWindows認証を使用したExchangeServerへの接続

  19. 19

    CQ5.5resourceTypeを使用したサーブレットへの投稿

  20. 20

    WireMockを使用したサードパーティサービスへのスタブコール

  21. 21

    cURLを使用したデータベースへの投稿に関する問題

  22. 22

    kubernetesnginxを介したgRPCサービスへの接続

  23. 23

    AngularJSで$ httpサービスを使用して複数の配列を投稿する

  24. 24

    SQLAlchemyを使用したAWSAuroraサーバーレスMySQLへのPython接続

  25. 25

    SpringCloudコネクターを使用したCloudFoundryユーザー提供サービスへのアクセス

  26. 26

    RxSwiftを使用したサービスクラスへの同時アクセスの制限

  27. 27

    MQTTサービスを使用したサーバーの再起動

  28. 28

    Axiosを使用したSheetlabsAPIへの投稿

  29. 29

    Pythonのサービスアカウントを介したGoogleCloudStorageへのアクセス許可

ホットタグ

アーカイブ