配列データをPythonからPHPにPOSTメッセージを送信するときに問題が発生した。おかげで、解決までに丸2日間かかった。
このような思いは誰にもしてほしくないのでメモ!
急いでいる方は、「結論!POSTで配列データを正しく送信する方法!」から読んでも構いません!
\IT未経験者からのサポートあり!転職サービス3選!!/
サービス名 | |||
---|---|---|---|
未経験 | 未経験OK | 未経験の転職専用 | 経験者向け |
公開の求人数 | ITエンジニア全体で1万件以上 ITエンジニア未経験で600件以上 |
未公開 | 5,000件以上 |
利用対象 | 全職種 | IT特化 | IT特化 |
特徴 | ✓誰もが知る転職サービス ✓経歴を登録しておくとオファーが来る |
✓企業担当者と条件交渉 ✓スキルの身につく企業を紹介 |
✓IT専門のエージェントが対応 ✓転職成功すると年収200万円以上の大幅アップがある |
転職サポート内容 |
|
|
|
公式サイト | リクナビネクスト | テックゲート | レバテックキャリア |
配列データをPOST形式で送る際に発生した問題
PythonからPHPにPOSTでデータを送信するとき、
配列のデータが正しく送れていないことが発覚しました。
送るデータはこんな感じ
keywords = ["あいうえお","カキクケコ"]
output_data = {}
output_data["uid"] ="ユーザID"
output_data["id"] ="アプリの番号"
output_data["keyword_list"] = keywords #配列
実際のPythonのコードはこんな感じ
import requests
keywords = ["あいうえお","カキクケコ"]
#データを設定する
output_data = {}
output_data["uid"] ="ユーザID"
output_data["id"] ="アプリの番号"
output_data["keyword_list"] = keywords #配列
#PHPに送信する部分
url = "http://localhost:8000/post_check.php"
r_post = requests.post(url, data=output_data)
pprint.pprint(r_post.text)
その結果、PHP側では以下のように受信した。
uid=ユーザID&id=アプリの番号&keyword_list=あいうえお&keyword_list=カキクケコ
なんと「keyword_list」が重複している。しかも配列形式になっていない!
では、対処方法を次の章で書きます。
結論!POSTで配列データを正しく送信する方法!
POSTで配列データを正しく送信する方法は以下のとおりです。
Python側のコード
import requests
keywords = ["あいうえお","カキクケコ"]
#データを設定する
output_data = {}
output_data["uid"] ="ユーザID"
output_data["id"] ="アプリの番号"
#ポイントはここ!
#配列で送りたい場合、キーを「keyword_list」ではなく、「keyword_list[0]」のように設定する
output_data["keyword_list[0]"] = keywords[0]
output_data["keyword_list[1]"] = keywords[1]
#PHPに送信する部分
url = "http://localhost:8000/post_check.php"
r_post = requests.post(url, data=output_data)
pprint.pprint(r_post.text)
PHP側の受信結果
uid=ユーザID&id=アプリの番号&keyword_list[0]=あいうえお&keyword_list[1]=カキクケコ
PHP側の変数 「$_POST」は、「keyword_list」は配列として認識されていました。
めでたしめでたし。
\IT未経験者からのサポートあり!転職サービス3選!!/
サービス名 | |||
---|---|---|---|
未経験 | 未経験OK | 未経験の転職専用 | 経験者向け |
公開の求人数 | ITエンジニア全体で1万件以上 ITエンジニア未経験で600件以上 |
未公開 | 5,000件以上 |
利用対象 | 全職種 | IT特化 | IT特化 |
特徴 | ✓誰もが知る転職サービス ✓経歴を登録しておくとオファーが来る |
✓企業担当者と条件交渉 ✓スキルの身につく企業を紹介 |
✓IT専門のエージェントが対応 ✓転職成功すると年収200万円以上の大幅アップがある |
転職サポート内容 |
|
|
|
公式サイト | リクナビネクスト | テックゲート | レバテックキャリア |