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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

405閲覧

json形式の特定の内容を取り出すために

maro

総合スコア13

JSON

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/07/16 10:49

前提

観光地の口コミをまとめたjson形式のファイルの"text"に"秋"と書かれている口コミを一件ずつ取り出したいです。
また,pythonで実装しています.
以下のようなエラーメッセージが出ているので,わかる方教えていただきたいです.

実現したいこと

・以下のように実現したいです.
"223": {
"evaluation": "5.0",
"title": "見所多い",
"text": "秋は見所の多い観光地です。水路もあり、街並みもきれいで、家々も素敵です。観光ポイントも多いし、お店もあるのでよかったです。",
"day": "2018年5月",
"post_day": "2019年3月10日",
"judge": "その他"
},

発生している問題・エラーメッセージ

if "秋" in line["text"]:

TypeError: string indices must be integers

該当のソースコード

import requests
from bs4 import BeautifulSoup
import urllib
import sys
import re
import json
import pandas as pd

class_list =[]
new_data = []

with open("kurashiki_judge.json", "r", encoding='utf-8') as f:
json_load = json.load(f)

for line in json_load: if "秋" in line["text"]: new_data.append(json_load) print(new_data)

補足情報

以下がjson形式の内容です.

"1": {
"evaluation": "4.0",
"title": "ヨーロッパの美術館みたい",
"text": "倉敷でまず最初に訪れたい場所でした。あまり混んでいなかったのでじっくり名画を鑑賞することができ良かったです洋画家児島虎次郎の作品がとくに展示数が多くてこの暑い夏にぴったりでしたショップでポストカードを数枚購入して部屋に飾りました。",
"day": "2022年6月28日",
"post_day": "2022年7月3日",
"judge": "夏"
},

"2": {
"evaluation": "3.0",
"title": "人がたくさん",
"text": "GW中の昼過ぎという時間のせいか、駐車場探しに20分もかかりしかも遠い場所だったため、時間をロスした。古い町並みを通り抜け水路のところまでたどり着いたが、やはり人がたくさんで、落ち着かなかった。やはり、こういうべたな観光地は朝一で行くのが一番だと実感した。すいていれば、もう少し見るところはあったと思うが・・・。",
"day": "2022年4月",
"post_day": "2022年6月21日",
"judge": "春"
},

"3": {
"evaluation": "4.0",
"title": "観光船の船長さんの案内最高",
"text": "美観地区内を流れる川の観光船に乗ってみました。船長さんの案内を聞いて改めて倉敷の美観地区の良さを感じることができました。また、観光船にお似合いの白無垢を着られたお嫁さんがとてもきれいでしたよ。",
"day": "2022年6月",
"post_day": "2022年6月15日",
"judge": "その他"
},

.......................................................................................
以下,3241件まで続きます.

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

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

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

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

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

guest

回答2

0

ベストアンサー

python

1import json 2from pprint import pprint 3 4with open("kurashiki_judge.json", "r", encoding='utf-8') as f: 5 json_load = json.load(f) 6 7new_data = {k: v for k, v in json_load.items() if "秋" in v["text"]} 8pprint(new_data, sort_dicts=False) 9 10# 11{'223': {'evaluation': '5.0', 12 'title': '見所多い', 13 'text': '秋は見所の多い観光地です。水路もあり、街並みもきれいで、家々も素敵です。観光ポイントも多いし、お店もあるのでよかったです。', 14 'day': '2018年5月', 15 'post_day': '2019年3月10日', 16 'judge': 'その他'}}

投稿2022/07/16 11:37

編集2022/07/16 12:55
melian

総合スコア19703

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

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

maro

2022/07/16 14:01

ありがとうございます!!!
guest

0

辞書のvalueを参照するのなら

for line in json_load.values():

投稿2022/07/16 11:28

sigsegv

総合スコア895

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

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

maro

2022/07/16 14:02

ありがとうございます!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問