2017-05-02 5 views
0

各属性をJSON形式で判別したいのですが、JSON形式のファイルの内容を知りません。例えばpython json属性を決定する

私は、これらの異なるファイルcontenentを持っている:

[ 
{ 
    "name": "abc", 
    "hobby": "swimming" 
}, 
{ 
    "name": "xyz", 
    "hobby": "programming" 
} 
] 

及び第二の例:

[ 
{ 
    "street": "PL EDOUARD BOUILLIERE", 
    "nb_places_totales": 249 
}, 
{ 
    "street": "CHE DU VERDON", 
    "nb_places_totales": 212 
} 
] 

どのように私は、Pythonを使ってattribut名を解析し、判断することができますか?

+0

あなたのJSONは 'dict'値の' list'で構成されているようです。最初に 'list'を繰り返し処理し、' dict.item()のkey、valueの 'を実行して' dict'値を反復処理することができます。 'key'はあなたが探しているJSONキーを含みます。 –

答えて

1

jsonパッケージを使用してファイルを解析します。次に、データ構造の最初の項目のキーを見ることができます。

import json 

with open(filename) as fid: 
    data = json.load(fid) 

print(data[0].keys()) 
+0

iは例えばattributs囲ま取得する場合: [ { "geo_shape":{ \t \t \t \t "タイプ": "点"、 \t \t \t \t "座標":[ \t \t \t \t \t 1.437119162465912を、 \t \t \t \t \t 43.63540081010507 \t \t \t \t] \t \t \t}、 "NOM": "LA VACHE" }] –

+0

この場合 'データ[0] [ 'geo_shape']キー()'。適切なレベルに達するまで、list/dict構造体にインデックスを作成するだけで済みます。あるレベルですべてのキーを取得するためにエントリをループする場合は、 'set'オブジェクトを使用して一意のキーを取得できます。 –

0
data = """[ 
{ 
    "name": "abc", 
    "hobby": "swimming" 
}, 
{ 
    "name": "xyz", 
    "hobby": "programming" 
} 
]""" 

import json 
d = json.loads(data) # here I am loading from the string, but you can load from a json file by using json.load() instead of json.loads() 

# iterate through the list of dicts and print the keys for each dict 
for _ in d: 
    print _.keys() 

これはになります:あなたはのpython3で、辞書のキーをチェックする必要がある

[u'hobby', u'name'] 
[u'hobby', u'name'] 
0

import json 

a = json.loads(""" 
[{"name": "abc", "hobby": "swimming" }, 
{"name": "xyz", "hobby": "programming"}] 
""") 

b = json.loads(""" 
[{"street": "PL EDOUARD BOUILLIERE", "nb_places_totales": 249}, 
{"street": "CHE DU VERDON", "nb_places_totales": 212 }] 
""") 

print(*(i.keys() for i in a)) 
print(*(i.keys() for i in b)) 

をしかし、すべてのソリューションはとにかく依存何とかコンテンツになります。

-2

これは属性名の取得方法です。値を必要とする場合は、キーではなく値を出力します。

import json 
import sys 

obj1 = [ 
{ 
    "name": "abc", 
    "hobby": "swimming" 
}, 
{ 
    "man": "xyz", 
    "hobby": "programming" 
} 
] 

obj2 = [ 
{ 
    "street": "PL EDOUARD BOUILLIERE", 
    "nb_places_totales": 249 
}, 
{ 
    "street": "CHE DU VERDON", 
    "nb_places_totales": 212 
} 
] 

print "Obj1 Attributes" 
for i in range(0, len(obj1)): 
    for key, value in obj1[i].items(): 
     print key 


print "Obj2 Attributes" 
for j in range(0, len(obj2)): 
    for key, value in obj2[i].items(): 
     print key 
+0

4000個のオブジェクトがないことを願っています... –

+0

最初のループを削除します.. ?? –

関連する問題