PythonでJSONファイルの日本語キーを読む方法
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
"東京"
bashで小数点を比較する方法
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を実行します。
Thunderbirdで重複メールを削除する方法
Thunderbirdで重複メールを削除する方法について紹介します。
1.はじめに
何かの拍子に受信メールが重複しまいました。
数千件あるので手作業ではなくツールなどを使って一括削除したいのですが、方法がわかりません。
ということで、Thunderbirdで重複メールを削除する方法について紹介します。
2.重複メールを削除する
Thunderbirdで重複メールを削除するには、拡張機能「Remove Duplicate Messages」を利用します。
Thunderbirdの「ツール」→「アドオン」を選択し、検索ボックスに「Remove Duplicate Messages」を入力して検索。
表示された「Remove Duplicate Messages」の「インストール」をクリック(インストール後は要再起動)。
重複メールを削除したいフォルダを選択し、「ツール」→「重複メッセージの削除」を選択。
すべての重複メールが検出されるので、問題なければ「OK」をクリック。
これで重複メールが削除されました。
重複メールの検出方法は「ツール」→「アドオン」→「拡張機能」→「Remove Duplicate Messages」の「設定」をクリックすればカスタマイズできます。