"dataset_code"
import json, urllib
import quandl
url = "https://www.quandl.com/api/v3/datasets/WIKI/FB.json?"
loaded = urllib.urlopen(url).read()
data = json.loads(loaded)
for Date in data['dataset']['dataset_code']['Date']:
print(Date)
JSONファイルは文字列です。
data['dataset']['dataset_code']
を実行すると、結果は"FB"
になります。 "FB"
は文字列なので、別の文字列では索引付けできません。 data['dataset']['dataset_code']['Date']
は、あなたのサンプルファイルでは"FB"['Date']
に相当します。数字(「integer
」)を内部に入れている場合は、[]
演算子は"FB"
のような文字列でしか使用できません。
このデータを意味のある何かをする、あなたはdict
Sにアイテムを再構築することができます。これにより、データの操作がより簡単になります。あなたはdictsのリストを取得するには、このコードを使用することができます。
cnames = data["dataset"]["column_names"]
entries = data["dataset"]["data"]
data_dict = [{c: entry[i] for i, c in enumerate(cnames)} for entry in entries]
は今、あなたのデータは、この新しい形式では
[
{
"Volume": 20184035.0,
"Ex-Dividend": 0.0,
"Adj. High": 125.835,
"Adj. Close": 125.15,
"Adj. Volume": 20184035.0,
"High": 125.835,
"Adj. Low": 124.6184,
"Adj. Open": 124.98,
"Low": 124.6184,
"Date": "2016-08-05",
"Close": 125.15,
"Split Ratio": 1.0,
"Open": 124.98
},
{
"Volume": 21065974.0,
"Ex-Dividend": 0.0,
"Adj. High": 124.79,
"Adj. Close": 124.36,
"Adj. Volume": 21065974.0,
"High": 124.79,
"Adj. Low": 122.51,
"Adj. Open": 122.94,
"Low": 122.51,
"Date": "2016-08-04",
"Close": 124.36,
"Split Ratio": 1.0,
"Open": 122.94
},
]
の形態であり、個々の行のすべての値を選択することは非常に簡単です。データセットからのすべての日付を取得するには、単に使用します。
[x["Date"] for x in data2]
便宜上、機能でこれをラップ:
def get_all_values(key):
return [x[key] for x in data2]
さて、あなたはget_all_values("Date")
やget_all_values("Open")
を使用することができます。
あなたの完全なコードは次のようになります。私は助け
import json, urllib
import quandl
url = "https://www.quandl.com/api/v3/datasets/WIKI/FB.json?"
loaded = urllib.urlopen(url).read()
data = json.loads(loaded)
cnames = data["dataset"]["column_names"]
entries = data["dataset"]["data"]
data2 = [{c: entry[i] for i, c in enumerate(cnames)} for entry in entries]
def get_all_values(key):
return [x[key] for x in data2]
# Get all the dates from the dataset
for Date in get_all_values("Date"):
print(Date)
願っています!
JSONファイルの一部しか提供していないようです。それは意図的なことであり、おそらく質問の中でこれを説明するでしょう。 – MikeT