python-3.x - 从带有列的 json 响应创建数据框(all_urls、描述、名称、价格)
问题描述
下面给出的字典数据我想获取列名“all_urls”、“description”、“name”、“price”的数据框。
{
"all_urls":["http://url1.com","http://url2.com", "http://url3.com"],
"known":[{"description":"Decription here",
"name":"Product nam",
"price":20,
"url":"http://url1.com"},
{"description":"Decription here",
"name":"Product name",
"price":50,
"url":"http://url2.com"}
]}
}
{
"all_urls":["http://url21.com","http://url22.com", "http://url23.com"],
'known': []
}
解决方案
我将首先创建一个仅包含您需要的值的新字典,然后使用pandas.DataFrame.from_dict方法进行转换。
import pandas as pd
data = {
"all_urls":["http://url1.com","http://url2.com", "http://url3.com"],
"known":[{"description":"Decription here",
"name":"Product nam",
"price":20,
"url":"http://url1.com"},
{"description":"Decription here",
"name":"Product name",
"price":50,
"url":"http://url2.com"}
]}
parsed_data = { "all_urls":data["all_urls"],
"description":[i["description"] for i in data["known"]],
"name":[i["name"] for i in data["known"]],
"price":[i["price"] for i in data["known"]] }
data_as_df = pd.DataFrame.from_dict(parsed_data,orient="index")
print(data_as_df)
输出
0 1 2
all_urls http://url1.com http://url2.com http://url3.com
description Decription here Decription here None
name Product nam Product name None
price 20 50 None
对于解析,我使用列表理解来简化。我希望它是你想要的格式。
推荐阅读
- javascript - Vue js:如何清除应用的过滤器?
- c - 如何正确释放结构的 GHashTable
- c - 我的 C 代码有什么问题?C 代码警告
- c# - Autofac,如何解析/注入 Dispatcher?
- tensorflow - 多元线性回归问题的收敛问题
- sql - Bigquery - 如何根据条件聚合数据
- java - 在 Java 中的多线程进程中更新布尔值
- python - 如何使用python selenium webdriver单击框架中存在的按钮
- python - 如果在centos 7上安装了MQ客户端,为什么pymqi不会安装?
- javascript - 在反应中创建受控输入