【Python,PHP版】配列データをPOST形式で正しく送信する方法!

PHP

配列データを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万円以上の大幅アップがある
転職サポート内容
  • 求人検索
  • 企業担当者と交渉
  • 求人紹介
  • ライフプランのサポート
  • キャリア相談
  • 求人紹介
  • 提出書類の添削
  • 面接対策
公式サイト リクナビネクスト テックゲート レバテックキャリア

 

最新情報をチェックしよう!