私はキーを取得しようとしているリスト/辞書があります。リスト/辞書のキーを取得
私がキーを印刷しようとしているのは、修正が必要な部分であるget_keys()
の機能です。
import json, io
business_json = "business.json"
def read_json(file):
lines = [line for line in open(file)]
js = [json.loads(line) for line in lines]
for item in js:
name = item.get("name")
return js
def get_keys(data):
for key in data.keys():
print(key)
def get_values_for_category(data, category):
values = []
for item in data:
values.append(item.get(category))
return values
def main():
json_data = read_json(business_json) #works
names = get_values_for_category(json_data, "name") #works
get_keys(json_data)
if __name__ == "__main__":
main()
私は上記get_keys(data)
だと得るエラーは次のとおりです。
AttributeError: 'list' object has no attribute 'keys'
私が代わりにしようとした場合:
for key, val in data.items():
print(key, val)
または
for key in list(data).keys()
かfor key in list(data.keys())
私は同じ問題を取得します。
私はリストを持っており、キーが必要です。しかし、リストのキーを得るために私が見つけたすべての方法はエラーを返します。
機能でjs
を取得する方法に問題がありますか?私は値を取得するためのキー("name"
)を使用することができる理由として困惑しているが、私は調べることができ、様々なキーを返すことができません...
EDIT:フルトレースバックがある:
Traceback (most recent call last):
File "D:\Batman\Documents\- Datasets\yelp_dataset\dataset\Yelp_analysis.py", line 29, in <module>
main()<br>
File "D:\Batman\Documents\- Datasets\yelp_dataset\dataset\Yelp_analysis.py", line 25, in main
get_keys(json_data)<br>
File "D:\Batman\Documents\- Datasets\yelp_dataset\dataset\Yelp_analysis.py", line 13, in get_keys
for key in data.keys():<br>
AttributeError: 'list' object has no attribute 'keys'
(FWIW .jsonファイルの概要はhereであり、データのスニペットはhere on PasteBinです)。
のようになります。あなたは、リストまたはディレクトリを持っていますか?彼らは非常に異なるものです。明らかに、エラーはリストにはキーがないと言うので、そこに辞書が必要です –
トレースバック全体を見ることはできますか? –
@ cricket_007 - 私は 'type(js)'を使って辞書を持っていると思っていました。 '' '' –
BruceWayne