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

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

新規登録して質問してみよう
ただいま回答率
85.47%
JSON

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

Python 2.7

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

Q&A

解決済

1回答

3676閲覧

PythonでJSONを扱う方法

v200

総合スコア12

JSON

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

Python 2.7

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

0グッド

1クリップ

投稿2015/03/30 11:41

「自然言語処理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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

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

wiki.py

lang

1#!/usr/bin/env python 2# -*- coding: utf-8 -*- 3 4import gzip 5import json 6 7 8def main(): 9 # gzipファイルの読み込み 10 f = gzip.open('./jawiki-country.json.gz', 'rb') 11 file_content = f.read() 12 f.close() 13 14 # {"記事タイトル": 記事本文の辞書型} なる辞書を作成 15 article_dict = {} 16 # 1行に1記事が格納されているので、読み込んだテキストを行ごとに分割 17 for line in file_content.splitlines(): 18 # 行単位でJSONをパースする 19 line_dict = json.loads(line) 20 article_dict[line_dict['title']] = line_dict 21 22 # 問題20. イギリスの記事を表示する 23 aritcle_of_england = article_dict[u'イギリス']['text'] 24 print "----- Answer of Q.20 -----" 25 print aritcle_of_england 26 print 27 28 # 問題21. カテゴリを宣言している行を抽出 29 print "----- Answer of Q.21 -----" 30 for line in aritcle_of_england.splitlines(): 31 if line.find('Category') >= 0: 32 print line 33 34 35if __name__ == '__main__': 36 main() 37

実行結果

lang

1$ python wiki.py 2----- Answer of Q.20 ----- 3{{redirect|UK}} 4{{基礎情報 国 5|略名 = イギリス 6|日本語国名 = グレートブリテン及び北アイルランド連合王国 7 8(中略) 9 10----- Answer of Q.21 ----- 11[[Category:イギリス|*]] 12[[Category:英連邦王国|*]] 13[[Category:G8加盟国]] 14[[Category:欧州連合加盟国]] 15[[Category:海洋国家]] 16[[Category:君主国]] 17[[Category:島国|くれいとふりてん]] 18[[Category:1801年に設立された州・地域]] 19

投稿2015/03/30 15:43

編集2015/03/30 15:47
yura

総合スコア61

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

v200

2015/03/31 07:21

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問