Python3でPOST通信する

Pythonを書き始めて1日目

外部のAPIを叩きたいと思って 試行錯誤の結果できた、サンプルコード

importのモジュール群とかよくわかってないものが多すぎるが、 Python初日での理解で、どうにか動いたというレベルのものはできた

※headersでjsonエンコードをしてるのは、自分が使いたいAPIの仕様のため

詰まったのは、リクエストボディの値の作り方

valueが配列になるようなやつは、key名に[]をつけてあげればOKだった

import json # jsonを扱うためのもの?
import urllib.request # HTTP通信する際に使うもの?
import urllib.parse # URLエンコードするために必要なもの?

url = 'APIのURL'
method = 'POST'
# リクエストヘッダ情報
headers_object = {
    'key': 'value'
}
headers = {
    'key': json.dumps(headers_object).encode()
}
# リクエストボディ情報
data_object = {
    'string': 'string_value',
    'int': int_value,
    'array[]': 'array_value',
}
data = urllib.parse.urlencode(data_object).encode()

response = urllib.request.Request(url, data=data, headers=headers, method=method)
with urllib.request.urlopen(response) as res:
    body = res.read().decode()
    print(body)