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

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

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

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

Q&A

解決済

1回答

1295閲覧

辞書型の要素アクセスについて

K_T_T_K

総合スコア231

Python 2.7

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

0グッド

0クリップ

投稿2015/09/21 14:02

{ "http://www.yelp.com/biz/upstate-new-york-2": [ { "restname": "Upstate" }, { "tell": "(917) 408-3395" }, { "locality": "95 1st Ave, New York, NY 10003" }, { "homepage": "upstatenyc.com" }, { "category": "American(New),\nSeafood" }, { "lat": "40.726354" }, { "lon": "-73.986553" }, { "restname": "Traif" }, { "tell": "(347) 844-9578" }, { "locality": "229 S 4th St, Brooklyn, NY 11211" }, { "homepage": "traifny.com" }, { "category": "American(New),\nTapas/SmallPlates" }, { "lat": "40.710599" } ] }

上記のJSONから次を取得したいです。

{ "lon": "-73.986553" }, { "restname": "Traif" }, { "tell": "(347) 844-9578" }, { "locality": "229 S 4th St, Brooklyn, NY 11211" }, { "homepage": "traifny.com" }, { "category": "American(New),\nTapas/SmallPlates" }, { "lat": "40.710599" }

どなたかサンプル・解決策お願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

書いてみました。

python

1$ cat 10.py 2import json 3 4jsonString = ''' 5{ 6 "http://www.yelp.com/biz/upstate-new-york-2": [ 7 { 8 "restname": "Upstate" 9 }, 10 { 11 "tell": "(917) 408-3395" 12 }, 13 { 14 "locality": "95 1st Ave, New York, NY 10003" 15 }, 16 { 17 "homepage": "upstatenyc.com" 18 }, 19 { 20 "category": "American(New),\\nSeafood" 21 }, 22 { 23 "lat": "40.726354" 24 }, 25 { 26 "lon": "-73.986553" 27 }, 28 { 29 "restname": "Traif" 30 }, 31 { 32 "tell": "(347) 844-9578" 33 }, 34 { 35 "locality": "229 S 4th St, Brooklyn, NY 11211" 36 }, 37 { 38 "homepage": "traifny.com" 39 }, 40 { 41 "category": "American(New),\\nTapas/SmallPlates" 42 }, 43 { 44 "lat": "40.710599" 45 } 46 ] 47} 48''' 49src = json.loads(jsonString) 50# print(src) 51 52dest = [] 53s = src["http://www.yelp.com/biz/upstate-new-york-2"] 54 55keys = ["lon", "restname", "tell", "locality", "homepage", "category", "lat"] 56dest = {} 57 58for h, infos in src.items(): 59 ans = {} 60 dest[h] = [] 61 62 for val in infos: 63 for k, v in val.items(): 64 if k in keys: 65 ans[k] = v 66 67 for vk, vv in ans.items(): 68 dest[h].append({vk: vv}) 69 70# print(dest) 71jsons = json.dumps(dest, indent=2, ensure_ascii=False) 72print(jsons)

実行例:

$ python3 10.py { "http://www.yelp.com/biz/upstate-new-york-2": [ { "lat": "40.710599" }, { "lon": "-73.986553" }, { "category": "American(New),\nTapas/SmallPlates" }, { "homepage": "traifny.com" }, { "restname": "Traif" }, { "tell": "(347) 844-9578" }, { "locality": "229 S 4th St, Brooklyn, NY 11211" } ] }

投稿2015/09/22 01:17

katoy

総合スコア22324

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

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

K_T_T_K

2015/09/22 03:23

Katoy様 いつもありがとうございます。 解決致しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問