Python 提取json键值的一部分并合并

Python 提取json键值的一部分并合并,python,json,Python,Json,我有这个json数据集。从这个数据集中,我只需要“column_names”键及其值和“data”键及其值。column_name的每个值对应于数据的值。如何在python中仅结合这两个键进行分析 {"dataset":{"id":42635350,"dataset_code":"MSFT","column_names": ["Date","Open","High","Low","Close","Volume","Dividend","Split", "Adj_Open","Adj_High"

我有这个json数据集。从这个数据集中,我只需要“column_names”键及其值和“data”键及其值。column_name的每个值对应于数据的值。如何在python中仅结合这两个键进行分析

{"dataset":{"id":42635350,"dataset_code":"MSFT","column_names":
["Date","Open","High","Low","Close","Volume","Dividend","Split",
 "Adj_Open","Adj_High","Adj_Low","Adj_Close","Adj_Volume"],
"frequency":"daily","type":"Time Series",
"data":[["2017-12-28",85.9,85.93,85.55,85.72,10594344.0,0.0,1.0,83.1976157998082,
83.22667201021558,82.85862667838872,83.0232785373639,10594344.0],
["2017-12-27",85.65,85.98,85.215,85.71,14678025.0,0.0,1.0,82.95548071308001,
83.27509902756123,82.53416566217294,83.01359313389476,14678025.0]

for cnames in data['dataset']['column_names']:
print(cnames)

for cdata in data['dataset']['data']:
print(cdata)
For循环提供了我想要的列名和数据值,但我不确定如何将其组合起来,并将其作为python数据框架进行分析

参考:以上代码来自quandal网站

data = {
  "dataset": {
      "id":42635350,"dataset_code":"MSFT",
      "column_names": ["Date","Open","High","Low","Close","Volume","Dividend","Split","Adj_Open","Adj_High","Adj_Low","Adj_Close","Adj_Volume"],
      "frequency":"daily",
      "type":"Time Series",
      "data":[
          ["2017-12-28",85.9,85.93,85.55,85.72,10594344.0,0.0,1.0,83.1976157998082, 83.22667201021558,82.85862667838872,83.0232785373639,10594344.0], 
          ["2017-12-27",85.65,85.98,85.215,85.71,14678025.0,0.0,1.0,82.95548071308001,83.27509902756123,82.53416566217294,83.01359313389476,14678025.0]
      ]
  }
}
下面的代码是否应该满足您的要求

import pandas as pd
df = pd.DataFrame(data, columns = data['dataset']['column_names'])
for i, data_row in enumerate(data['dataset']['data']):
    df.loc[i] = data_row

下面的代码片段应该适合您

将熊猫作为pd导入
df=pd.DataFrame(data['dataset']['data'],columns=data['dataset']['column_names']))
查看以下链接了解更多信息

这很简单

labeled_data = [dict(zip(cols, d)) for d in data]

提供预期的JSONExpected json应该只包含列名和数据。For loop给出了所需的键,但我不确定如何组合以获得一个json数据{“列名称”:[“日期”、“打开”、“高”、“低”、“关闭”、“音量”、“股息”、“拆分”、“调整打开”、“调整高”、“调整低”、“调整关闭”、“调整音量”]”数据:[“2017-12-28”,85.9,85.93,85.55,85.72,10594344.0,0.0,1.0,83.1976157998082, 83.22667201021558,82.85862667838872,83.0232785373639,10594344.0], ["2017-12-27",85.65,85.98,85.215,85.71,14678025.0,0.0,1.0,82.95548071308001, 83.27509902756123,82.53416566217294,83.01359313389476,14678025.0]}如何将其保存为python dict中的键、值对。使用dict代替pd.dataframe会给我一个valueError:太多的值无法解包。您能否详细说明如何将它们表示为键、值对。我知道您只需要列名和数据,但请提供一个示例输出以帮助我们更好地理解。如果您蚂蚁标记的数据,使用毗瑟奴德夫的答案。
labeled_data = [dict(zip(cols, d)) for d in data]