[解決済み】JSONの文字列をリストではなく辞書に変換する方法
質問
JSONファイルを渡して、データを辞書に変換しようとしています。
今のところ、こんな感じです。
import json
json1_file = open('json1')
json1_str = json1_file.read()
json1_data = json.loads(json1_str)
私が期待しているのは
json1_data
になります。
dict
という型がありますが、実際には
list
でチェックすると
type(json1_data)
.
何が足りないのでしょうか?私はキーの1つにアクセスできるように、これを辞書にする必要があります。
どのように解決するのですか?
JSONは内部に1つのオブジェクトを持つ配列なので、読み込むと内部に辞書を持つリストが得られます。以下のように、リストのアイテム0にアクセスすることで、辞書にアクセスすることができます。
json1_data = json.loads(json1_str)[0]
に格納されているデータにアクセスできるようになりました。 データポイント は、あなたが期待していた通りです。
datapoints = json1_data['datapoints']
<ブロッククオート
もう一つ質問があるのですが、どなたかお聞かせください。これらのデータポイントの最初の要素(つまり、datapoints[0][0])の平均を取りたいのです。datapoints[0:5][0]を試してみましたが、両方の要素を含む最初のデータポイントが得られるだけで、最初の要素だけを含む最初の5つのデータポイントを得たいとは思えません。これを行う方法はありますか?
datapoints[0:5][0]
は、あなたが期待しているようなことはしません。
datapoints[0:5]
は最初の5つの要素だけを含む新しいリストスライスを返し、その後に
[0]
を末尾につけると、最初の要素である
その結果のリストスライスから
. 欲しい結果を得るために使用する必要があるのは
リスト内包
:
[p[0] for p in datapoints[0:5]]
ここで、平均を計算する簡単な方法を紹介します。
sum(p[0] for p in datapoints[0:5])/5. # Result is 35.8
をインストールしてもいいなら NumPy であれば、さらに簡単です。
import numpy
json1_file = open('json1')
json1_str = json1_file.read()
json1_data = json.loads(json1_str)[0]
datapoints = numpy.array(json1_data['datapoints'])
avg = datapoints[0:5,0].mean()
# avg is now 35.8
を使用することで
,
演算子とNumPyの配列のスライス構文とは、リストスライスで元々期待されていた動作をします。
関連
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み] 正しいJSONコンテンツタイプは何ですか?
-
[解決済み] JSONでコメントを使用することはできますか?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] cURLでJSONデータをPOSTするにはどうすればよいですか?
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] JavaScriptでJSONをきれいに印刷する
-
[解決済み】文字列をdatetimeに変換する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonの非常に便利な2つのデコレーターを解説
-
Python カメの描画コマンドとその例
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].