首页 > 解决方案 > 将json查询结果加载到数据框

问题描述

完成 'load_query_result_to_df' 函数,将上一个 'get_res_for_API_query' 中的 'api_query_res' 结果加载到数据帧中。如上所述,使用 api_query_res.json() 获取字典(表示 json)。

def get_res_for_API_query(included_field_value_pairs, excluded_field_value_pairs):
   u="http://moocdsand.ml:8080/api/records/1.0/search?dataset=chocolate-bars"
  
   if excluded_field_value_pairs:
       for key, value in excluded_field_value_pairs:
           u+="&exclude." + key + "=" + value
          
   if included_field_value_pairs:
       for key in range(0 , len(included_field_value_pairs)):
           u+=  "&refine." + included_field_value_pairs[key][0] + "=" + included_field_value_pairs[key][1]
   response = requests.get(u)
   return response 

不起作用的功能:

def load_query_result_to_df(api_query_res):  
   df = pd.DataFrame.from_dict(api_query_res.json(), orient='index')
   return df 

我得到这个错误:

KeyError:'cocoa_percent' AssertionError:查询的结果数错误

标签: pythonjsonpandasdata-science

解决方案


您可以尝试一些更简单的方法,例如:

df = pd.json_normalize(results, record_path = ['results'])

这将展平结果并生成一个名为 df 的新数据框。

将数据导入数据框后,处理数据可能会更容易。


推荐阅读