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

PHP

配列データをPythonからPHPにPOSTメッセージを送信するときに問題が発生した。おかげで、解決までに丸2日間かかった。

このような思いは誰にもしてほしくないのでメモ!

急いでいる方は、「結論!POSTで配列データを正しく送信する方法!」から読んでも構いません!

プログラミング・実務経験がある方も必見!
空いた時間をスキルアップ・収入増に使ってみませんか?

副業で仕事を取る方法を教えてくれる!
プログラミングスクール4選の詳細

 

配列データを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」は配列として認識されていました。

めでたしめでたし。

プログラミング・実務経験がある方も必見!
空いた時間をスキルアップ・収入増に使ってみませんか?

副業で仕事を取る方法を教えてくれる!
プログラミングスクール4選の詳細

 

AI(機械学習)が学べるスクールを講座ごとに一覧表示!

さらに、比較表を活用することにより、細かい特徴が違いが一発でわかります。

AIスキルを身に付けて、市場価値が高いエンジニアを目指しましょう!

 

AIスクールの検索、比較ができるペン太ブル本家

最新情報をチェックしよう!
>プログラミングスクール検索・比較表サイト

プログラミングスクール検索・比較表サイト

ワンクリック、さらに詳細に条件を指定してプログラミングスクールの検索ができます。さらに比較表により特徴を細かく比較できる!

CTR IMG