我能够获得名称,信息和点数(其中的所有数据都以整数数据的形式出现)。 以下是示例输入数据:
data : [[{'Info':'http:\/\/www.epa.gov\/enviro\/geo_data.html', 'Name':'US RCRA Generators (CESQG, SQG, LQG)', 'Color':[
240, 180, 120 ], 'Points':[
{
'Direction':'1.64069406001901', 'Description':'SRID=4326;POINT(-111.74632 33.29791)', 'Fields':[
{
'Value':'COSTCO #644', 'Key':'Primary Name' }, {
'Value':'2887 S MARKET ST', 'Key':'Address' }, {
'Value':'GILBERT', 'Key':'City' }, {
'Value':'MARICOPA', 'Key':'County' }, {
'Value':'ONE-HOUR PHOTOFINISHING., OTHER GASOLINE STATIONS.', 'Key':'NAICS Descriptions' } ], 'Longitude':'-111.74632', 'Latitude':'33.29791', 'Type':'ST_Point' } ]]]
以下是我的尝试:
info_list = []
name_list = []
points_list = []
lat_list = []
long_list = []
for ff in finalJson:
for gg in ff:
info = gg['Info']
name = gg['Name']
points = gg['Points']
info_list.append(info)
name_list.append(name)
points_list.append(points)
但是需要获取csv中的键值数据(引用的内容作为列名称,值引用为各自的行):'名称','信息',&#39 ;积分' ['纬度&#39],'点数' ['经度&#39],'点数' ['字段&# 39; [所有关键,这个内部块的值]]
任何帮助都将不胜感激。
答案 0 :(得分:1)
为什么不使用json_normalize?
将对象扁平化为pandas数据帧非常出色:
from pandas.io.json import json_normalize
df = json_normalize(json_data['data'])
print(df.head())
然后清理/重组数据框,最后使用to_csv将其导出为CSV。
df.to_csv('/path/output.csv', encoding='utf-8')
修改:拆分'积分'列成多列。
df2 = df.groupby('Info').Points.apply(lambda x: pd.DataFrame(x.values[0])).reset_index()
final_df = pd.concat([df, df2])
print(final_df)