質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.48%

  • Python 2.7

    1315questions

    Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

  • JSON

    1203questions

    JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

PythonでJSONを扱う方法

解決済

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 2,145

v200

score 5

「自然言語処理100本ノック_2015」
http://www.cl.ecei.tohoku.ac.jp/nlp100/

このサイトの20番目、21番目の問題をpythonで行う方法を教えてください。
お願いします。




*補足
Rubyで行う方法
http://yugui.jp/articles/887






下のサイトの方法を試して見たのですが、日本語ファイルの為か1行に1記事の情報が入っているためかうまくいきませんでした。
http://tmlife.net/programming/python/python-json-module.html

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

こんな感じでどうでしょうか。

wiki.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import gzip
import json


def main():
    # gzipファイルの読み込み
    f = gzip.open('./jawiki-country.json.gz', 'rb')
    file_content = f.read()
    f.close()

    # {"記事タイトル": 記事本文の辞書型} なる辞書を作成
    article_dict = {}
    # 1行に1記事が格納されているので、読み込んだテキストを行ごとに分割
    for line in file_content.splitlines():
        # 行単位でJSONをパースする
        line_dict = json.loads(line)
        article_dict[line_dict['title']] = line_dict

    # 問題20. イギリスの記事を表示する
    aritcle_of_england = article_dict[u'イギリス']['text']
    print "----- Answer of Q.20 -----"
    print aritcle_of_england
    print 

    # 問題21. カテゴリを宣言している行を抽出
    print "----- Answer of Q.21 -----"
    for line in aritcle_of_england.splitlines():
        if line.find('Category') >= 0:
            print line


if __name__ == '__main__':
    main()


実行結果

$ python wiki.py
----- Answer of Q.20 -----
{{redirect|UK}}
{{基礎情報 国
|略名 = イギリス
|日本語国名 = グレートブリテン及び北アイルランド連合王国

(中略)

----- Answer of Q.21 -----
[[Category:イギリス|*]]
[[Category:英連邦王国|*]]
[[Category:G8加盟国]]
[[Category:欧州連合加盟国]]
[[Category:海洋国家]]
[[Category:君主国]]
[[Category:島国|くれいとふりてん]]
[[Category:1801年に設立された州・地域]]

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/03/31 16:21

    ありがとうございました!!!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.48%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    pythonの数値計算ライブラリを使った関数近似

    python初心者の質問で失礼します. ノイズデータを処理するためにガウシアンフィッティングを使いたいと思い調べたところ,pythonの数値計算ライブラリーにあるコマンド”nor

  • 解決済

    文字列からdictに変換する方法について教えて下さい

    pythonを使って文字列を、dict形式に変換する方法が変換する方法が 分かりません。 jsonString =  "{ "name": "aaa", "age": 3

  • 解決済

    pycurl 実行結果

    import pycurl curl = pycurl.Curl() ...... curl.perform() 実行結果がすべてjsonで帰ってくるとします {"co

  • 解決済

    Python セーブについて

    前提・実現したいこと 名簿登録のようなものを作っています リストに追加した要素を一時的にではなくセーブできるようにしたい 該当のソースコード div=int(input('1:

  • 解決済

    Python初心者の為の当面の目標及び勉強方法

    AIやディープラーニングに興味を持った事をきっかけにプログラミングをはじめて2日目の者です。ある質問サイトから、プログラミングについての質問はteratailが良いと聞いたので、ア

  • 解決済

    Python 3でスクレイピングするデータを辞書型に変換したい

     前提・実現したいこと Python 3でスクレイピングしたいです。 対象のWebサイトはJSON形式で表示されます。 スクレイピングするデータを辞書型で変数に保存したいです。

  • 解決済

    Cifar10画像データセットにある値の意味について

     前提・実現したいこと python3でSENetを用いての画像処理に取り組んでいるのですが、 自作のデータセットを準備するにあたって、cifar10のデータセットを参考にデータを

  • 解決済

    python json エラー

    現在の値を持ってきてそれを変数にしてpriceに入れたいのですがエラーになってしまってとても困っています。 例;変数P=1から100ランダムです 値を取得してそれを変数Pと

同じタグがついた質問を見る

  • Python 2.7

    1315questions

    Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

  • JSON

    1203questions

    JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。