如何使用Python从数百个JSON文件创建单个数据集?

时间:2016-06-23 20:34:15

标签: python json rest csv

我是Python和REST的新手(但是长期以来的SAS程序员)。我试图从威斯康星州法院REST API下载大约10年的法庭档案。每个案例都必须按案例编号单独查询以获取完整信息,并且我已经编写了一个循环,可以获取我需要的完整URL列表并打开每个案例。

我不需要JSON中的所有信息,因此我希望将我想要的变量拉出来并将其展平为看起来像数据集的东西,每个案例一行和我感兴趣的变量列(名称,案例类型,费用等)然后我可以导出到SAS可以读取的文件类型(CSV,txt,Excel等)。

我知道如何解析JSON文件,但我想知道什么是最好的方法来展平它。我看到this发布了从列表列表中导出CSV的帖子,但我宁愿使用一种结构,我可以继续将变量名称与变量配对,这样我就不会感到困惑(因为并非全部案件有完整的信息)。 Python中是否有数据集类型结构?如果我使用嵌套字典,有没有办法导出它没有键?或嵌套列表是最好的方法吗?

2 个答案:

答案 0 :(得分:1)

为什么不写一个自定义的flattener函数,将你想要的数据从json中抓取成一个普通的旧python dict?我感兴趣的数据是第一级 - 转换可能如下所示:

function flattener(s):
    nested = json.loads(s)
    return { k:nested[k] for k in [ 'keys', 'you', 'need' ] } 

答案 1 :(得分:0)

我还没有看到这些数据,但你看过使用熊猫吗?如果您是Python的新手,那就是创建类似R的数据框对象的模块。它还包括一个json解析器:

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_json.html

将每个json加载到Pandas数据帧后,您可以删除不需要的列,执行合并等等。