Python में ETL और ELT
Jake Roach
Data Engineer

नेस्टेड JSON
{
"863703000": {
"price": {
"open": 0.12187,
"close": 0.09791
},
"volume": 1443120000
},
"863789400": {
}, ...
}
लक्ष्य:
$$
[
[863703000, 0.12187, 0.09791, 1443120000],
[863789400, 0.09843, ...]
]
# कुंजियों पर लूप करें
for key in raw_data.keys():
...
# मानों पर लूप करें
for value in raw_data.values():
...
# कुंजी और मान दोनों पर लूप करें
for key, value in raw_data.items():
...
.keys()
.values()
.items()
entry = {
"volume": 1443120000,
"price": {
"open": 0.12187,
"close": 0.09791,
}
}
# .get() से डिक्शनरी से डेटा पार्स करें
volume = entry.get("volume")
ticker = entry.get("ticker", "DCMP")
# नेस्टेड "open" मान लौटाने के लिए .get() दो बार कॉल करें
open_price = entry.get("price").get("open", 0)
pd.DataFrame() को लिस्ट ऑफ लिस्ट्स पास करें
# लिस्ट ऑफ लिस्ट्स pd.DataFrame को पास करें
raw_data = pd.DataFrame(flattened_rows)
.columns से कॉलम हेडर सेट करें
# कॉलम बनाएँ
raw_data.columns = ["timestamps", "open", "close", "volume"]
.set_index() से इंडेक्स सेट करें
# "timestamps" को इंडेक्स कॉलम सेट करें
raw_data.set_index("timestamps")
parsed_stock_data = []
# raw_stock_data डिक्शनरी के हर कुंजी-मूल्य जोड़े पर लूप करें
for timestamp, ticker_info in raw_stock_data.items():
parsed_stock_data.append([
timestamp,
ticker_info.get("price", {}).get("open", 0), # ओपनिंग प्राइस पार्स करें
ticker_info.get("price", {}).get("close", 0), # क्लोजिंग प्राइस पार्स करें
ticker_info.get("volume", 0) # वॉल्यूम पार्स करें
])
# DataFrame बनाएँ, कॉलम नाम दें, और इंडेक्स सेट करें
transformed_stock_data = pd.DataFrame(parsed_stock_data)
transformed_stock_data.columns = ["timestamps", "open", "close", "volume"]
transformed_stock_data = transformed_stock_data.set_index("timestamps")
Python में ETL और ELT