python requests/モジュールの活用

python requestsの概要

python requestsの概要

Pythonのrequestsは、HTTP通信用のライブラリです。GET、POST、PUT、DELETEなどのHTTPメソッドを使用して、Webサーバーと通信するための簡単なインターフェイスを提供します。

requestsの主な機能は、以下のとおりです。

  • HTTPリクエストの送信
  • レスポンスの受信
  • レスポンスのデコード
  • ヘッダーの設定
  • 認証の設定
  • プロキシの設定
  • タイムアウトの設定

requestsは、WebスクレイピングやWeb APIの呼び出しなど、さまざまな用途に使用できます。

python requestsのインストール方法

Python requestsは、pipコマンドを使用してインストールできます。

pip install requests

関連 pythonのライブラリ一覧を取得

python requestsの使用方法

python requestsの使用方法

Python Requestsの基本的な使い方は、以下のとおりです。

import requests

# GETリクエストの送信
response = requests.get("https://www.python.org/")

# レスポンスの取得
text = response.text

# レスポンスのデコード
html = bs4.BeautifulSoup(text, "html.parser")

# タイトルの取得
title = html.find("title").text

print(title)

pythonのrequests get

pythonのrequests get

Python Requestsのget()関数は、HTTP GETリクエストを送信するための関数です。

import requests

# GETリクエストの送信
response = requests.get("https://www.python.org/")

# レスポンスの取得
text = response.text

# レスポンスの表示
print(text)

get()関数の引数は、以下のとおりです。

  • url: リクエストを送信するURL
  • params: リクエストに渡すパラメータ
  • headers: リクエストに渡すヘッダー
  • **kwargs: その他のオプション

params引数には、辞書でパラメータを渡します。

# GETリクエストの送信
response = requests.get("https://www.google.co.jp/search", params={"q": "python"})

# レスポンスの取得
text = response.text

# レスポンスの表示
print(text)

このコードは、Googleで「python」を検索した結果を取得し、そのテキストを表示します。

headers引数には、ヘッダーを辞書で渡します。

# GETリクエストの送信
response = requests.get("https://www.python.org/", headers={"User-Agent": "MyApp"})

# レスポンスの取得
text = response.text

# レスポンスの表示
print(text)

**kwargs引数には、その他のオプションを渡します。

# GETリクエストの送信
response = requests.get("https://www.python.org/", timeout=10)

# レスポンスの取得
text = response.text

# レスポンスの表示
print(text)

このコードは、タイムアウトを10秒に設定して、Pythonの公式ドキュメントのページを取得します。

pythonのrequestsのheader

pythonのrequestsのheader

Python Requestsのheaders引数を使用して、HTTPリクエストにヘッダーを設定することができます。

import requests

# User-Agentヘッダーを設定
headers = {"User-Agent": "MyApp"}

# GETリクエストの送信
response = requests.get("https://www.python.org/", headers=headers)

# レスポンスの取得
text = response.text

# レスポンスの表示
print(text)

ヘッダーは、辞書で指定します。キーはヘッダー名、値はヘッダーの値です。

複数のヘッダーを設定する場合は、辞書に複数のキーと値を追加します。

# AcceptヘッダーとAccept-Encodingヘッダーを設定
headers = {"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8", "Accept-Encoding": "gzip, deflate"}

# GETリクエストの送信
response = requests.get("https://www.python.org/", headers=headers)

# レスポンスの取得
text = response.text

# レスポンスの表示
print(text)

ヘッダーの値は、文字列、整数、浮動小数点数、ブール値、リスト、辞書など、さまざまな型を指定できます。

pythonのrequestsのresponse

pythonのrequestsのresponse

PythonのRequestsのresponseは、HTTPリクエストの応答を表すオブジェクトです。

responseオブジェクトには、以下の属性があります。

  • status_code: HTTPステータスコード
  • headers: HTTPヘッダー
  • content: レスポンスボディ
  • raw: バイナリレスポンス
  • elapsed: 応答時間
  • history: リクエストの履歴

responseオブジェクトの属性は、以下のようにしてアクセスできます。

import requests

# GETリクエストの送信
response = requests.get("https://www.python.org/")

# ステータスコード
print(response.status_code)
# 200

# ヘッダー
print(response.headers)
# {'Content-Type': 'text/html; charset=utf-8', 'Cache-Control': 'max-age=86400', 'Content-Length': '7441', 'Date': 'Mon, 18 Sep 2023 15:14:18 GMT', 'Expires': 'Tue, 20 Sep 2023 15:14:18 GMT', 'Server': 'nginx', 'X-Content-Type-Options': 'nosniff', 'X-Frame-Options': 'SAMEORIGIN', 'X-Powered-By': 'Python/3.10.4'}

# レスポンスボディ
print(response.content)
# HTMLの文字列

以下は、responseオブジェクトの例です。

import requests

# GETリクエストの送信
response = requests.get("https://www.python.org/")

# 属性の確認
print(response.status_code)
# 200

print(response.headers)
# {'Content-Type': 'text/html; charset=utf-8', 'Cache-Control': 'max-age=86400', 'Content-Length': '7441', 'Date': 'Mon, 18 Sep 2023 15:14:18 GMT', 'Expires': 'Tue, 20 Sep 2023 15:14:18 GMT', 'Server': 'nginx', 'X-Content-Type-Options': 'nosniff', 'X-Frame-Options': 'SAMEORIGIN', 'X-Powered-By': 'Python/3.10.4'}

print(response.content)
# HTMLの文字列

このコードは、Pythonの公式ドキュメントのページを取得し、そのステータスコード、ヘッダー、レスポンスボディを表示します。

responseオブジェクトは、HTTPリクエストの応答を処理するために使用できます。

たとえば、responseオブジェクトのcontent属性を使用して、レスポンスボディをテキストとして取得できます。

import requests

# GETリクエストの送信
response = requests.get("https://www.python.org/")

# レスポンスボディの取得
text = response.content

# レスポンスボディの表示
print(text)

このコードは、Pythonの公式ドキュメントのページのテキストを表示します。

また、responseオブジェクトのheaders属性を使用して、ヘッダーを辞書として取得できます。

import requests

# GETリクエストの送信
response = requests.get("https://www.python.org/")

# ヘッダーの取得
headers = response.headers

# ヘッダーの表示
for key, value in headers.items():
    print(f"{key}: {value}")

このコードは、Pythonの公式ドキュメントのページのヘッダーを表示します。

responseオブジェクトは、HTTPリクエストの応答を処理するための便利なオブジェクトです。さまざまな属性を使用して、HTTPリクエストの応答に関する情報を取得したり、処理したりすることができます。

python requestsのresponseをjson形式で取得

python requestsのresponseをjson形式で取得

PythonのrequestsのresponseをJSONで取得するには、responseオブジェクトのjson()メソッドを使用します。

json()メソッドは、レスポンスボディをJSON形式でデコードして、Pythonの辞書やリストに変換します。

import requests

# GETリクエストの送信
response = requests.get("https://api.example.com/v1/users/1")

# JSON形式でレスポンスボディを取得
data = response.json()

# 取得したデータを表示
print(data)

このコードは、例のAPIからユーザー情報を取得し、その情報をJSON形式で表示します。

responseオブジェクトのjson()メソッドは、レスポンスボディがJSON形式でない場合、エラーが発生します。

レスポンスボディがJSON形式でない場合、responseオブジェクトのcontent属性を使用して、レスポンスボディをテキストとして取得できます。その後、JSONモジュールを使用して、テキストをJSON形式に変換できます。

import requests
import json

# GETリクエストの送信
response = requests.get("https://api.example.com/v1/users/1")

# レスポンスボディの取得
text = response.content

# JSON形式に変換
data = json.loads(text)

# 取得したデータを表示
print(data)

このコードも、例のAPIからユーザー情報を取得し、その情報をJSON形式で表示します。

pythonの環境構築/開発用にインストールする方法

python環境構築

python環境構築

Pythonの環境構築とは、Pythonを実行するための環境を用意することを指します。Pythonは、Windows、macOS、Linuxなど、さまざまなOSで実行することができます。

環境構築には、以下の2つのステップがあります。

  1. Pythonのインストール
  2. 統合開発環境(IDE)のインストール

Pythonのインストール

Pythonのインストールは、公式のWebサイトからインストーラをダウンロードして実行することで簡単に行うことができます。

Windowsの場合は、以下の手順でインストールできます。

  1. Pythonの公式Webサイトからインストーラをダウンロードする
  2. ダウンロードしたインストーラを実行する
  3. インストールするPythonのバージョンとインストールオプションを選択する
  4. インストールを実行する

macOSの場合は、以下の手順でインストールできます。

  1. Homebrewをインストールする
  2. HomebrewでPythonをインストールする

Linuxの場合は、ディストリビューションのパッケージマネージャーを使ってPythonをインストールできます。

統合開発環境(IDE)のインストール

Pythonの開発には、統合開発環境(IDE)を使うと便利です。IDEを使えば、コードを入力して実行するだけでなく、デバッグやテストなども簡単に行うことができます。

PythonのIDEには、以下のようなものがあります。

  • PyCharm
  • Visual Studio
  • PyScripter
  • Eclipse
  • Atom
  • VScode
  • Sublime Text

初心者の場合は、PyCharmやVisual Studioなどの、Python専用IDEを使うのがおすすめです。

環境構築のまとめ

Pythonの環境構築は、以下の手順で行うことができます。

  1. Pythonのインストール
  2. 統合開発環境(IDE)のインストール

環境構築が完了したら、Pythonの簡単なコードを実行して、環境が正常に動作していることを確認しましょう。

環境構築のコツ

環境構築のコツは、以下のとおりです。

  • Pythonのバージョンは、最新のものを使う
  • 統合開発環境(IDE)は、自分のニーズに合ったものを選ぶ
  • 環境構築の手順は、公式サイトやチュートリアルを参考にする

環境構築は、Pythonの学習や開発を開始する前に、必ず行う必要があります。環境構築をしっかり行うことで、Pythonの学習や開発をスムーズに進めることができます。

PYTHONのIDE(開発環境)を使って動かしてみよう!

PythonのIDE(開発環境)を使って動かすには、以下の手順で行います。

  1. 統合開発環境(IDE)をインストールする
  2. IDEを起動する
  3. Pythonのコードを書く
  4. コードを実行する

統合開発環境(IDE)のインストール

統合開発環境(IDE)のインストールは、前述した方法で行うことができます。

IDEの起動

IDEを起動したら、Pythonのコードを書くためのエディタが表示されます。

Pythonのコードを書く

Pythonのコードは、以下のようになります。

# 変数を宣言する
x = 10

# 変数の値を表示する
print(x)

このコードを実行すると、以下の出力が表示されます。

10

コードを実行する

コードを実行するには、IDEの「実行」ボタンをクリックするか、F5キーを押します。

IDEの使い方

IDEには、コードの入力補完やデバッグ機能など、さまざまな機能が用意されています。IDEの使い方は、IDEのヘルプやチュートリアルを参考にしてください。

初心者向けのIDE

初心者向けのIDEとしては、以下のようなものがあります。

これらのIDEは、無料で利用でき、使いやすい機能が用意されています。

selenium python/基本のサイトの入門のWITH

selenium pythonの概要

selenium pythonの概要

Selenium Pythonは、PythonでWebブラウザの操作を自動化するためのフレームワークです。Seleniumは、WebDriverと呼ばれるAPI群とプロトコルを利用してWebブラウザ操作を行うため、さまざまなブラウザやプラットフォームで動作することができます。

Selenium Pythonの主な用途は、以下のとおりです。

  • Webアプリケーションのテスト自動化
  • Webスクレイピング
  • 業務の自動化

Selenium Pythonの利点は、以下のとおりです。

  • クロスプラットフォーム対応
  • 豊富な機能セット
  • 広範なブラウザサポート

selenium pythonのインストール

selenium pythonのインストール

Selenium Pythonの環境構築は、以下の手順で行います。

  1. Pythonのインストール
  2. Seleniumのインストール
  3. ブラウザドライバーのインストール

Pythonのインストール

Pythonのインストールは、公式のWebサイトからインストーラをダウンロードして実行することで簡単に行うことができます。

Seleniumのインストール

Seleniumのインストールは、pipコマンドを使って行うことができます。

pip install selenium

関連 pythonのライブラリ一覧を取得

Selenium Pythonの使い方、サンプルコード

Selenium Pythonの基本的な使い方は、以下のとおりです。

# ブラウザを起動する
from selenium import webdriver

# Chromeを起動する
driver = webdriver.Chrome()

# ウェブサイトにアクセスする
driver.get('https://www.google.com/')

# 検索ボックスに入力する
driver.find_element_by_name('q').send_keys('Selenium')

# 検索ボタンをクリックする
driver.find_element_by_name('btnK').click()

# 検索結果を取得する
results = driver.find_elements_by_class_name('g')

# 結果を表示する
for result in results:
    print(result.text)

# ブラウザを閉じる
driver.close()

Selenium Pythonは、Webブラウザの操作を自動化するための強力なツールです。Webアプリケーションのテスト自動化やWebスクレイピングなど、さまざまな用途で活用することができます。

selenium pythonでのスクレイピング

selenium pythonでのスクレイピング

selenium pythonでウェブページをスクレイピングする方法は?

Selenium Pythonでは、find_element_by_()やfind_elements_by_()などのメソッドを使って、Webページの要素を取得することができます。

例えば、以下のコードは、Googleの検索結果から各検索結果のタイトルとURLを取得するコードです。

# ブラウザを起動する
from selenium import webdriver

# Chromeを起動する
driver = webdriver.Chrome()

# ウェブサイトにアクセスする
driver.get('https://www.google.com/')

# 検索ボックスに入力する
driver.find_element_by_name('q').send_keys('Selenium')

# 検索ボタンをクリックする
driver.find_element_by_name('btnK').click()

# 検索結果を取得する
results = driver.find_elements_by_class_name('g')

# 結果を表示する
for result in results:
    print(result.text, result.get_attribute('href'))

# ブラウザを閉じる
driver.close()
Selenium - WebDriver API - WebDriver | Selenium

WebDriver
WebDriver drives a browser natively; learn more about it.
Selenium - WebDriver API - WebDriver - Locators | Selenium
https://selenium.dev/documentation/webdriver/selenium_api/locators/
Selenium - WebDriver API - WebDriver - Actions | Selenium
301 Moved Permanently
Selenium - WebDriver API - WebDriver - Interactions | Selenium
301 Moved Permanently
Selenium - WebDriver API - WebDriver - Alert | Selenium
301 Moved Permanently

ブラウザを閉じる

スクレイピングが完了したら、ブラウザを閉じます。

Selenium Pythonを使ってWebスクレイピングを行うには、これらの手順を踏む必要があります。

Selenium PythonでWebスクレイピングを行う際の注意点は、以下のとおりです。

  • アクセスするサイトの利用規約に違反しないようにする
  • 過度なアクセスを控える(アクセス間隔を1秒以上あける、1日のアクセス回数を決めるなど)

python anaconda/利用の解説の簡単の環境の構築

PythonとAnacondaの違い

PythonとAnacondaの違い

「Pythonをインストールしてください。だけど、Anacondaのほうがいいかも知れません」みたいな、解説を見て「何いってんだ?」と思ったあなたへ。私も思いました。

Anacondaは、ざっくり言うと、元々パソコンにインストールされてるPythonを上書きインストールしてぶっ壊したくない!というときに使うやつです。複数のバージョンのPythonを使いたいときにも使います。仮想環境、という言い方をする場合もありますね。

PythonとAnacondaの違いを、以下の表にまとめました。

項目 Python Anaconda
定義 プログラミング言語 Pythonのディストリビューション
主な機能 プログラミング プログラミング、ライブラリやツールの提供
対象 汎用 データサイエンス、機械学習
インストールサイズ 小さい 大きい
必要なライブラリやツール 自分でインストールする まとめてインストールされる
環境構築 自分で行う 簡単に行うことができる
メリット 柔軟性が高い 環境構築が簡単
デメリット 必要なライブラリやツールを自分でインストールする必要がある インストールサイズが大きい

PythonとAnacondaのどちらを使うかは、用途によって異なります。汎用的なプログラミングを行うにはPython、データサイエンスや機械学習を行うにはAnacondaがおすすめです。

複数バージョンのPythonを使いたいという場合は、Anacondaの利用をおすすめします。Anacondaは、環境構築が簡単で、データサイエンスや機械学習に必要なライブラリやツールが豊富に用意されているため、Pythonの学習や開発を効率的に進めることができます。

Pythonを直接インストール

なんかしらんけど、とりあえずPython入れたいんだというPython初心者の場合は、Pythonを単体で利用することもできます。Anacondaを入れると、Anacondaのことを色々覚えなきゃいけなくて、そんなのイヤダ!っていう場合はシンプルにPython入れるといいでしょう。そのうち、今のPython環境壊さずに、別バージョンのPython入れたいな…なんてときに、Anacondaを思い出してください。

Anacondaのメリット、デメリット

Anacondaとは?

Anacondaは、Pythonのディストリビューションの一種です。Pythonの実行環境を提供するだけでなく、データサイエンスや機械学習に必要なライブラリやツールをまとめて提供しています。

Anacondaを使うと、以下のメリットがあります。

  • 環境構築が簡単
  • 必要なライブラリやツールがすぐに使える
  • データサイエンスや機械学習の開発が効率的になる

Anacondaは、データサイエンスや機械学習の分野で広く利用されています。Pythonの初心者でも簡単に環境を構築して、データサイエンスや機械学習の開発を始めることができます。

Anacondaを使うことで、以下の作業が簡単にできます。

  • Pythonのインストール
  • 必要なライブラリやツールのインストール
  • Pythonのコードを書く
  • Pythonのコードを実行する

Anacondaは、データサイエンスや機械学習の開発に便利なツールです。Pythonの初心者や、データサイエンスや機械学習の開発に興味がある人は、Anacondaの利用をおすすめします。

具体的なメリットを以下に挙げます。

  • 環境構築が簡単

Anacondaをインストールすると、Pythonの実行環境とデータサイエンスや機械学習に必要なライブラリやツールがすべてインストールされます。そのため、Pythonの初心者でも簡単に環境を構築して、データサイエンスや機械学習の開発を始めることができます。

  • 必要なライブラリやツールがすぐに使える

Anacondaには、データサイエンスや機械学習に必要なライブラリやツールが豊富に用意されています。そのため、Pythonのコードを書くときに、必要なライブラリやツールを探してインストールする手間が省けます。

  • データサイエンスや機械学習の開発が効率的になる

Anacondaには、データサイエンスや機械学習の開発に便利なツールが用意されています。そのため、データサイエンスや機械学習の開発が効率的になります。

Anacondaのインストール方法

Anacondaのインストール方法

Anacondaのインストール方法は、以下のとおりです。

Windowsの場合

  1. Anacondaのダウンロードページにアクセスします。
  2. 「Download」をクリックします。
  3. 「Windows」をクリックします。
  4. 「Anaconda3-2023.07-Windows-x86_64.exe」をクリックして、インストーラをダウンロードします。
  5. ダウンロードしたインストーラをダブルクリックして、インストーラを起動します。
  6. ライセンス条項に同意します。
  7. インストール先を選択します。
  8. インストールオプションを選択します。
  9. 「Install」をクリックします。
  10. インストールが完了したら、デスクトップにショートカットが作成されます。

Macの場合

  1. Anacondaのダウンロードページにアクセスします。
  2. 「Download」をクリックします。
  3. 「Mac」をクリックします。
  4. 「Anaconda3-2023.07-MacOSX-x86_64.pkg」をクリックして、インストーラをダウンロードします。
  5. ダウンロードしたインストーラをダブルクリックして、インストーラを起動します。
  6. ライセンス条項に同意します。
  7. インストール先を選択します。
  8. 「Install」をクリックします。
  9. インストールが完了したら、アプリケーションフォルダにインストールされます。

Linuxの場合

  1. Anacondaのダウンロードページにアクセスします。
  2. 「Download」をクリックします。
  3. 「Linux」をクリックします。
  4. 自分の環境に合ったバージョンのインストーラをダウンロードします。
  5. ダウンロードしたインストーラを実行します。
  6. ライセンス条項に同意します。
  7. インストール先を選択します。
  8. 「Install」をクリックします。
  9. インストールが完了したら、ターミナルで以下のコマンドを実行して、Anacondaの環境を有効にします。
conda activate base

Anacondaのインストールが完了したら、以下のコマンドを実行して、Pythonのバージョンを確認できます。

python --version

出力に「Python 3.10.4」と表示されれば、Anacondaが正常にインストールされています。

Anacondaのインストール時に、以下のオプションを選択できます。

  • Install for all users:すべてのユーザーでAnacondaを利用できるようにします。
  • Add Anaconda to my PATH environment variable:AnacondaをPATHに追加して、コマンドラインからAnacondaを簡単に利用できるようにします。
  • Register Anaconda as my default Python:AnacondaをデフォルトのPythonとして登録します。

python グラフ/初心者のプロットのpyplotの描画

Pythonでのグラフ描画

Pythonでのグラフ描画
Pythonでグラフ描画を行うには、「Matplotlib」というライブラリを使う方法があります。

Matplotlibを使用することで、折れ線グラフや棒グラフ、円グラフ、散布図など様々なプロットを簡単に描画可能。

線の色、スタイル、ガイドの付加などをカスタマイズすることもできます。

Matplotlibの使い方

Matplotlibの使い方

Matplotlibは、Pythonでグラフを描画するためのライブラリです。折れ線グラフ、棒グラフ、円グラフ、散布図など、さまざまな種類のグラフを描画できます。

Matplotlibの使い方は、以下のとおりです。

  1. Matplotlibをインポートする
  2. グラフを描画する
  3. グラフを表示する

Matplotlibをインポートする

Matplotlibをインポートするには、以下のコードを実行します。

import matplotlib.pyplot as plt

関連 pythonのライブラリ一覧を取得

グラフを描画する

グラフを描画するには、plt.plot()関数を使用します。plt.plot()関数には、x軸の値とy軸の値を指定します。

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

plt.plot(x, y)

このコードは、x軸に1から5までの値、y軸に2から10までの値をプロットします。

グラフを表示する

matplotlibのグラフを表示する

グラフを表示するには、plt.show()関数を使用します。内部的にグラフが作成されてても、show()関数を使わないと表示されないんですね。

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

plt.plot(x, y)
plt.show()

Matplotlibの基本的な使い方

Matplotlibの基本的な使い方は、以下のとおりです。

  • plt.plot()関数でグラフを描画する
  • plt.xlabel()関数でx軸のタイトルを指定
  • plt.ylabel()関数でy軸のタイトルを指定
  • plt.title()関数でグラフのタイトルを指定
  • plt.show()関数でグラフを表示

Matplotlibの便利な機能

Matplotlibには、さまざまな便利な機能があります。

  • グラフの色や線のスタイルを変更する
  • グラフに注釈を追加する
  • グラフを保存する

これらの機能は、Matplotlibのドキュメントで詳しく説明されています。

Matplotlibのサンプルコード

Matplotlibのサンプルコード

Matplotlibの例をいくつか紹介します。

  • 折れ線グラフ
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

plt.plot(x, y, color="red", linestyle="-")
plt.xlabel("x")
plt.ylabel("y")
plt.title("折れ線グラフ")
plt.show()
  • 棒グラフ
x = ["A", "B", "C", "D", "E"]
y = [10, 20, 30, 40, 50]

plt.bar(x, y)
plt.xlabel("x")
plt.ylabel("y")
plt.title("棒グラフ")
plt.show()
  • 円グラフ
labels = ["A", "B", "C", "D", "E"]
values = [10, 20, 30, 40, 50]

plt.pie(values, labels=labels)
plt.title("円グラフ")
plt.show()
  • 散布図
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

plt.scatter(x, y)
plt.xlabel("x")
plt.ylabel("y")
plt.title("散布図")
plt.show()

pythonでjson読み込みやcsvデータ変換、出力

Pythonでjsonの読み込み、文字列変換

JSONとは
JSONは、JavaScriptObjectNotation(JSON)というデータ交換フォーマット。PythonでJSONデータを扱うためのツールとしてjsonモジュールが提供されています。

jsonモジュールを使うと、load/dump関数でJSONファイルの読み書きや、JSON文字列の変換を行うことができます。

公開APIなんかも、レスポンスをJSON形式で返すことも多く、PythonでJSONを使う機会は多いんですね。

JSONデータの読み書き

PythonでJSONを扱う方法を解説

loads()とdumps()関数を使うことで、JSON形式のデータを含む文字列のエンコード/デコードを行うことが可能です。

PythonでテキストデータをJSON形式として読み込むには、以下のようにします。テキスト形式をloads関数でJSON形式に変換しているんですね。ダブルクォート3つで囲った部分は、JSON形式のテキストファイルを読み込んで変数に入れたときのイメージになります。

import json

json_string = """
{
  "name": "John Doe",
  "age": 30,
  "address": "123 Main Street, Anytown, CA 91234"
}
"""

data = json.loads(json_string)

print(data)
ちなみに、JSON形式はフツーにテキスト形式で記述できます。で、書き出すときはdumps関数でJSON形式→テキスト形式に変換するんですね。
import json

data = {
    "name": "John Doe",
    "age": 30,
    "address": "123 Main Street, Anytown, CA 91234"
}

json_string = json.dumps(data, indent=4)

print(json_string)

いずれのサンプルも、実行すると以下のように表示されます。

{
    "name": "John Doe",
    "age": 30,
    "address": "123 Main Street, Anytown, CA 91234"
}

JSONデータとテキストデータの変換は、json.loads、json.dumpsを使うという点を覚えておきましょう。

Pythonのファイル入出力に関する入門

Pythonのファイル入出力に関する入門

では、テキストファイルを読み込んでPython内部でJSON形式データとして保持したり、JSON形式データをテキストとして出力するには?

テキストファイルからの読み込みサンプルはこう。ファイルdata.jsonからデータを読み込んで、内部でJSON形式の変数dataに格納します。

import json

with open("data.json") as f:
    data = json.load(f)

print(data)
JSON形式データのテキストファイルへの書き込みはこう。
import json

data = {
    "name": "John Doe",
    "age": 30,
    "address": "123 Main Street, Anytown, CA 91234"
}

with open("data.json", "w") as f:
    json.dump(data, f, indent=4)

テキストファイルからJSONを読み込むと、Pythonオブジェクトに変換されます。テキストファイルにJSONを書き込むと、PythonオブジェクトがJSONに変換されてファイルに書き込まれます。

PythonでJSONからCSVに変換するサンプル

PythonでJSONからCSVに変換するサンプル

JSONデータはちょくちょくCSVファイルに変換したいケースがあります。以下は、テキストファイルを読み込んでPython内部でJSON形式データとして保持し、CSV形式でテキストファイルに出力するサンプルです。

import csv

with open("data.json") as f:
    data = json.load(f)

with open("data.csv", "w") as f:
    writer = csv.writer(f)
    writer.writerow(data.keys())
    writer.writerows(zip(*data.values()))
実行すると、以下のようなコードが出力されます。
name,age,address
John Doe,30,123 Main Street, Anytown, CA 91234

関連)PythonのCSV作成

stringをintに(python)/数字の型変換の変換

Pythonでstringをintに

string int pythonに関する情報

Pythonで数字の文字列strを数値int, floatに変換

Pythonで数字の文字列strを数値int, floatに変換

Pythonでstringをintに変換するには、int()関数を使用します。int()関数には、stringを引数として渡します。

数字の文字列を整数に変換: int()

string = "123"

int_value = int(string)

print(int_value)

このコードは、stringをintに変換して、int_valueに格納します。そして、int_valueを出力します。

出力:

123

2進数、8進数、16進数表記の文字列を数値に変換

また、int()関数には、第二引数として、変換する基数を指定することもできます。10進数以外の2進数や8進数、16進数も変換可能ということですね。

string = "123"

int_value = int(string, 10)

print(int_value)

このコードは、stringを10進数に変換して、int_valueに格納します。

出力:

123

ただし、stringが整数でない場合は、エラーが発生します。

Python
string = "abc"

int_value = int(string)

print(int_value)

エラー内容はこんな感じ。

ValueError: invalid literal for int() with base 10: 'abc'

stringが整数かどうかを事前にチェックが必要かも。

string = "123"

if string.isdigit():
    int_value = int(string)
    print(int_value)
else:
    print("string is not an integer")

このコードは、stringが整数かどうかをチェックしています。stringが整数の場合は、int_valueに格納して出力します。stringが整数でない場合は、エラーメッセージを出力します。

出力:

123

数字の文字列を浮動小数点数に変換: float()

数字の文字列を浮動小数点数に変換: float()

Pythonで文字列を浮動小数点に変換するには、float()関数を使用します。float()関数には、文字列を引数として渡します。

string = "123.456"

float_value = float(string)

print(float_value)

このコードは、stringを浮動小数点に変換して、float_valueに格納します。そして、float_valueを出力します。

出力:

123.456

ただし、stringが浮動小数点でない場合は、エラーが発生します。

string = "abc"

float_value = float(string)

print(float_value)

エラー内容はこんな感じ。

ValueError: could not convert string to float: 'abc'

stringが浮動小数点かどうかをチェックするには以下のようにします。

string = "123.456"

if string.isdigit():
    float_value = float(string)
    print(float_value)
else:
    print("string is not a float")

出力:

123.456

また、float()関数には、第二引数として、小数点以下の桁数を指定することもできます。

string = "123.456"

float_value = float(string, 2)

print(float_value)

このコードは、stringを小数点以下2桁までで変換して、float_valueに格納します。

出力:

123.46

pythonで配列を削除/removeのメソッド、List

Pythonでリスト(配列)の要素を削除する方法

Pythonでリスト(配列)の要素を削除する方法

Pythonでリスト(配列)の要素を削除するには、以下の方法があります。

  • del文
  • pop()メソッド
  • remove()メソッド

clear()メソッド

clear()メソッド

clear()メソッドは、リストのすべての要素を削除します。

list = [1, 2, 3, 4, 5]

list.clear()

print(list)

このコードは、listのすべての要素を削除します。

出力:

[]

pop()メソッド

pop()メソッド

pop()メソッドは、リストの要素を削除して、その要素を返します。インデックスを指定して要素を削除する場合は、インデックスを指定します。インデックスを指定しないと、リストの最後の要素が削除されます。

list = [1, 2, 3, 4, 5]

element = list.pop()

print(list)
print(element)

このコードは、listの最後の要素を削除して、その要素をelementに格納します。

出力:

[1, 2, 3, 4]
5

remove()メソッド

remove()メソッド

remove()メソッドは、リストから指定した値の要素を削除します。

list = [1, 2, 3, 4, 5]

list.remove(3)

print(list)

このコードは、listから値が3の要素を削除します。

出力:

[1, 2, 4, 5]

del文を使って要素を削除する方法

del文を使って要素を削除する方法

del文は、リストの要素を削除するだけでなく、変数そのものを削除することもできます。

list = [1, 2, 3, 4, 5]

del list[2]

print(list)

このコードは、listの2番目の要素を削除します。

出力:

[1, 2, 4, 5]

python ソート/リストや辞書型の配列の並べ替え

Pythonのソート

Pythonのソート

Pythonのソートの仕方

Pythonのソートの仕方

Pythonでリストをソートするには、以下の方法があります。

  • リストのメソッドを使用する
  • 組み込み関数を使用する

コレ以外にも、「アルゴリズムを手作りでソート」という方法もあります。が、フツーにメソッドや組み込み関数使ったほうが効率が良いでしょう。本気で高速ソートをしたい場合は、その部分だけC言語で速いモジュールとして作り込むケースがあります。

ちなみに、Pythonのsort()メソッドは、Timsortというソートアルゴリズムで、挿入ソートとマージソートの長所を組み合わせたものです。

ソートアルゴリズムの比較

アルゴリズム 時間計算量 空間計算量 安定性 特徴
挿入ソート O(n^2) O(1) 安定 データがすでに部分的にソートされている場合に高速
選択ソート O(n^2) O(1) 不安定 常に最小値または最大値を探す
シェルソート O(n log n) O(1) 安定 挿入ソートを改良したもの
クイックソート O(n log n) O(log n) 不安定 分割と統合を繰り返す
マージソート O(n log n) O(n) 安定 データを2つの部分に分割してソートする
ヒープソート O(n log n) O(1) 不安定 ヒープ構造を利用する

ソートの基本と種類

各ソートアルゴリズムの特徴です。

  • 挿入ソート:データがすでに部分的にソートされている場合に高速
  • 選択ソート:常に最小値または最大値を探す
  • シェルソート:挿入ソートを改良したもの
  • クイックソート:分割と統合を繰り返す
  • マージソート:データを2つの部分に分割してソートする
  • ヒープソート:ヒープ構造を利用する

Pythonのソートのサンプルコード

Pythonのソートのサンプルコード

リストのメソッドを使用するサンプルコードを紹介します。

リストには、sort()メソッドが用意されています。sort()メソッドを使用すると、リストを昇順にソートできます。

list = [1, 5, 3, 2, 4]

list.sort()

print(list)

このコードは、リストを昇順にソートします。

出力:

[1, 2, 3, 4, 5]

sort()メソッドには、第二引数として、ソートの順序を指定することができます。

list = [1, 5, 3, 2, 4]

list.sort(reverse=True)

print(list)

このコードは、リストを降順にソートします。

出力:

[5, 4, 3, 2, 1]

また、sort()メソッドには、キーワード引数として、ソートする基準を指定することができます。

list = ["a", "c", "b"]

list.sort(key=len)

print(list)

このコードは、リストを文字列の長さでソートします。

出力:

['a', 'b', 'c']

組み込み関数を使用したソートについても紹介します。

組み込み関数には、sorted()関数が用意されています。sorted()関数を使用すると、リストをソートして、新しいリストを返すことができます。

list = [1, 5, 3, 2, 4]

sorted_list = sorted(list)

print(sorted_list)

このコードは、リストを昇順にソートして、新しいリストを返します。

出力:

[1, 2, 3, 4, 5]

sorted()関数には、第二引数として、ソートの順序を指定することができます。

list = [1, 5, 3, 2, 4]

sorted_list = sorted(list, reverse=True)

print(sorted_list)

このコードは、リストを降順にソートして、新しいリストを返します。

出力:

[5, 4, 3, 2, 1]

また、sorted()関数には、キーワード引数として、ソートする基準を指定することができます。

list = ["a", "c", "b"]

sorted_list = sorted(list, key=len)

print(sorted_list)

このコードは、リストを文字列の長さでソートして、新しいリストを返します。

出力:

['a', 'b', 'c']

python int tostring/数値を文字列に変換

pythonのintをtostringで文字列に変換

python int tostringについて
Pythonのint型を文字列に変換する、tostringメソッドってないの?

Pythonで数値を文字列に変換する方法

Pythonで数値を文字列に変換する方法

Pythonのint型を文字列に変換するには、tostring()メソッドとかではなく、str()で可能。

int_value = 123

string_value = str(int_value)

print(string_value)

このコードは、int_valueをstring_valueに格納します。そして、string_valueを出力します。

出力:

123

str()メソッドは、引数として任意のオブジェクトを受け取ることができます。int型の場合は、そのint型の値を文字列に変換して返します。

また、format()メソッドを使用しても、int型を文字列に変換できます。

int_value = 123

string_value = f"{int_value}"

print(string_value)

このコードも、int_valueをstring_valueに格納します。そして、string_valueを出力します。

出力:

123

format()メソッドは、引数として任意のオブジェクトを受け取ることができます。int型の場合は、そのint型の値を文字列に変換して返します。

f文字列リテラルを使用しても、int型を文字列に変換できます。

int_value = 123

string_value = f"{int_value:d}"

print(string_value)

このコードも、int_valueをstring_valueに格納します。そして、string_valueを出力します。

出力:

123

f文字列リテラルは、format()メソッドと同様に、引数として任意のオブジェクトを受け取ることができます。int型の場合は、そのint型の値を文字列に変換して返します。

:dは、int型を10進数で文字列に変換する指定です。他の指定も使用できます。例えば、:xは、int型を16進数で文字列に変換する指定です。

関連 stringをintに(python)/数字の型変換の変換

Pythonで文字列と数値の連結

Pythonにおける文字列と数値の連結について
文字列と数値を連結するには、「+」を使うのが一番かんたん。

string = "Hello, "
number = 123

combined_string = string + str(number)

print(combined_string)
このコードは、”Hello, “と123を連結して、”Hello, 123″を生成します。

出力:

Hello, 123

もうちょっと複雑に「フォーマット文字列に値を流し込みたい」ってときには、format()メソッドを使うほうが楽なケースもあります。

format()`メソッドは、文字列に埋め込みたい値を指定できます。

string = "Hello, {0}"
number = 123

combined_string = format(string, number)

print(combined_string)

このコードも、”Hello, “と123を連結して、”Hello, 123″を生成します。

出力:

Hello, 123