python - 黑暗天空 JSON 到 CSV 转换
问题描述
我正在尝试将黑暗的天空 JSON 转换为 CSV。
我已经设法让 JSON 加载,并使用以下命令给我第一天的第一个时间段的值:
##%% Load libraries
import sys
import os
import json
import csv
#%% Get file
# Move to correct directory
os.chdir('C:/GitWorkspace/apidumps\darksky')
# Load data from file
with open('Fraser Ave - Inverkeithing KY11 1EJ.json') as f:
data = json.load(f)
# Get fields from JSON data
date = data["2020-01-01"]
# Get daily data from JSON data
daily_data = data["2020-01-01"]["hourly"]["data"][0]
# Get fields from daily data
time = daily_data['time']
summary = daily_data['summary']
icon = daily_data['icon']
precipIntensity = daily_data['precipIntensity']
precipProbability = daily_data['precipProbability']
temperature = daily_data['temperature']
apparentTemperature = daily_data['apparentTemperature']
dewPoint = daily_data['dewPoint']
humidity = daily_data["humidity"]
pressure = daily_data['pressure']
windSpeed = daily_data['windSpeed']
windGust = daily_data['windGust']
windBearing = daily_data['windBearing']
cloudCover = daily_data['cloudCover']
uvIndex = daily_data['uvIndex']
visibility = daily_data["visibility"]
ozone = daily_data["ozone"]
我在这里附上了一张 JSON 文件格式的图片:
我的问题是:
- 如何获取当天所有时间的所有数据?
- 我如何让它在第 + 1 天循环回来?
- 然后如何将所有这些放入同一个 CSV 文件中?
抱歉,如果这非常简单 - 我还在学习
解决方案
#!/bin/python3
from functools import reduce
import operator
import csv
# Load data from file
with open('Fraser Ave - Inverkeithing KY11 1EJ.json') as f:
data = json.load(f)
# Get all dates hourly data from JSON data
toCSV = [date_data['hourly']['data'] for date, date_data in data.items()]
# convert to single list of dict
toCSV = reduce(operator.add, toCSV)
# get header names from first dict
keys = toCSV[0].keys()
# optionaly save as csv file
with open('sample.csv', 'w', newline='') as output_file:
dict_writer = csv.DictWriter(output_file, keys)
dict_writer.writeheader()
dict_writer.writerows(toCSV)
推荐阅读
- python - 如何在 numpy 中加速大张量的 logsumexp?
- c# - 使用带有 for 循环的 Raycast 制作视野(使用 Unity C#)
- python - 如果其他列的值与子字符串匹配而不仅仅是相等比较,我如何提取熊猫 df 单元格值
- ajax - ajax 没有得到 cakephp 代码的任何响应
- ios - 我也可以在 xcassets 之类的源代码中切片图像资源吗?
- python - Selenium Explicit 等待在 Python 中无法正常工作
- python - 从节点和边数组可视化社交网络
- mysql - MySQL 数据库更新给出不正确的结果
- php - 如何在现有代码中添加分页?
- java - 发送 GET 方法而不是 DELETE