PythonでJSONファイルの日本語キーを読む方法

November 14,2019 11:55 PM
Category:[Python]
Tag:[JSON, Python]
Permalink

PythonでJSONファイルの日本語キーを読む方法を紹介します。

1.問題点

次のJSONファイルがあります。文字コードはUTF-8です。

sample.json

{
"内容" : "工事",
"情報" : [
  {
  "番号" : "123",
  "名前" : "東京"
  },
  {
  "番号" : "456",
  "名前" : "大阪"
  } ]
}

このファイルを読み込み、"東京"というデータを表示するPythonスクリプト(sample.py)を作りました。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import sys
import json
 
# 引数取得
args = sys.argv
 
# JSONファイルオープン,パース
f = open(args[1], 'r')
data = json.load(f, 'utf-8')
f.close()
 
print json.dumps(data["情報"][0]["名前"], ensure_ascii=False)

が、実行すると次のようなKeyErrorになります。

# ./sample.py sample.json
Traceback (most recent call last):
  File "./sample.py", line 14, in 
    print json.dumps(data["情報"][0]["名前"], ensure_ascii=False)
KeyError: '\xe6\x83\x85\xe5\xa0\xb1'

ということで、PythonでJSONファイルの日本語キーを読む方法を紹介します。

2.日本語のキーを読む

PythonでJSONファイルの日本語キーを読むには、JSONを取得する際のキーに"u"を付与します。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import sys
import json
 
args = sys.argv
 
# JSONファイルオープン,パース
f = open(args[1], 'r')
data = json.load(f, 'utf-8')
f.close()
 
print json.dumps(data[u"情報"][0][u"番号"], ensure_ascii=False)

実行結果

# ./sample.py sample.json
"東京"
Comments [0] | Trackbacks [0]

bashで小数点を比較する方法

November 6,2019 11:55 PM
Category:[bash]
Tag:[bash, linux]
Permalink

bashで小数点を比較する方法を紹介します。

1.問題点

小数点を比較したいのですが、下記の構文では期待する結果になりません。

#!/bin/bash
 
A=0.1
B=0.2
 
if [ $A -gt $B ]; then
    echo "A > B"
else
    echo "A <= B"
fi

実行結果

./test.sh
./test.sh: line 6: [: 0.1: 指数の表現を期待
A <= B

ということで、bashで小数点を比較する方法を紹介します。

2.bashで小数点を比較する

bashで小数点を比較するには、echoとbcコマンドを組み合わせます。

#!/bin/bash
 
A=0.1
B=0.2
 
if [ `echo "$A > $B" | bc` == 1 ]; then
    echo "A > B"
else
    echo "A <= B"
fi

実行結果

./test.sh
A <= B

bcは計算を処理するコマンドです。

if文の説明ですが、まず、

echo "$A > $B" | bc

で、変数Aと変数Bを比較し、結果を表示してくれます。

結果が偽(A <= B)であれば0、真(A > B)であれば1を出力します。

あとは出力結果(0または1)を判定すればOKです。

今回のサンプルでは、

if [ `echo "$A > $B" | bc` == 1 ]; then

なので、A > Bであればthenを実行し、A <= Bであればelseを実行します。

Comments [0] | Trackbacks [0]

Thunderbirdで重複メールを削除する方法

October 24,2019 11:55 PM
Category:[Thunderbird]
Tag:[Thunderbird]
Permalink

Thunderbirdで重複メールを削除する方法について紹介します。

1.はじめに

何かの拍子に受信メールが重複しまいました。

数千件あるので手作業ではなくツールなどを使って一括削除したいのですが、方法がわかりません。

ということで、Thunderbirdで重複メールを削除する方法について紹介します。

2.重複メールを削除する

Thunderbirdで重複メールを削除するには、拡張機能「Remove Duplicate Messages」を利用します。

Thunderbirdの「ツール」→「アドオン」を選択し、検索ボックスに「Remove Duplicate Messages」を入力して検索。

表示された「Remove Duplicate Messages」の「インストール」をクリック(インストール後は要再起動)。

重複メールを削除したいフォルダを選択し、「ツール」→「重複メッセージの削除」を選択。

すべての重複メールが検出されるので、問題なければ「OK」をクリック。

(クリックで拡大)

これで重複メールが削除されました。

重複メールの検出方法は「ツール」→「アドオン」→「拡張機能」→「Remove Duplicate Messages」の「設定」をクリックすればカスタマイズできます。

Comments [0] | Trackbacks [0]
 1  |  2  |  3  |  4  |  5  | All pages