使用Python将Json转换为CSV

下面是我从在线气象站提取的json结构。我还包括一个json_to_csv python脚本,该脚本应该将json数据转换为csv输出,但仅返回“

Key”错误。我只想从“ current_observation”中提取数据。

{

"response": {

"features": {

"conditions": 1

}

}

, "current_observation": {

"display_location": {

"latitude":"40.466442",

"longitude":"-85.362709",

"elevation":"280.4"

},

"observation_time_rfc822":"Fri, 26 Jan 2018 09:40:16 -0500",

"local_time_rfc822":"Sun, 28 Jan 2018 11:22:47 -0500",

"local_epoch":"1517156567",

"local_tz_short":"EST",

"weather":"Clear",

"temperature_string":"44.6 F (7.0 C)",

}

}

import csv, json, sys

inputFile = open("pywu.cache.json", 'r') #open json file

outputFile = open("CurrentObs.csv", 'w') #load csv file

data = json.load(inputFile) #load json content

inputFile.close() #close the input file

output = csv.writer(outputFile) #create a csv.write

output.writerow(data[0].keys())

for row in data:

output = csv.writer(outputFile) #create a csv.write

output.writerow(data[0].keys())

for row in data:

output.writerow(row.values()) #values row

检索温度字符串并将其转换为.csv格式的最佳方法是什么?谢谢!

回答:

import pandas as pd

df = pd.read_json("pywu.cache.json")

df = df.loc[["local_time_rfc822", "weather", "temperature_string"],"current_observation"].T

df.to_csv("pywu.cache.csv")

也许熊猫可以为您提供帮助。.read_json()函数创建一个不错的数据框,您可以从中轻松选择所需的行和列。它也可以另存为csv。

要将纬度和经度添加到csv行中,您可以执行以下操作:

df = pd.read_json("pywu.cache.csv")

df = df.loc[["local_time_rfc822", "weather", "temperature_string", "display_location"],"current_observation"].T

df = df.append(pd.Series([df["display_location"]["latitude"], df["display_location"]["longitude"]], index=["latitude", "longitude"]))

df = df.drop("display_location")

df.to_csv("pywu.cache.csv")

要以数字值打印位置,可以执行以下操作:

df = pd.to_numeric(df, errors="ignore")

print(df['latitude'], df['longitude'])

以上是 使用Python将Json转换为CSV 的全部内容, 来源链接: utcz.com/qa/410176.html

回到顶部