python - JSON get请求的疑难解答格式
问题描述
我在尝试将获取请求响应转换为我想要的格式时遇到了问题。JSON 响应的结构有点复杂,我无法将其转换为正确的格式。
这是我将 json 脚本转换为 pandas 数据框的代码:
data = pd.DataFrame.from_dict(resp_isrc.json())
data.head()
这是我得到的 JSON 结构如下:
{"country":"US",
"artist_name":"Frank Ocean",
"title_name":"Provider",
"release_date":"2017-08-25",
"core_genre":"R&B/Hip-Hop",
"metrics":[{"name":"ISRC w/SES On-Demand",
"value":[{"name":"tp","value":2810},
{"name":"lp","value":2450},
{"name":"ytd","value":2740},
{"name":"atd","value":554267}]},
解决方案
在这里,您可以如何name, ip lp
从 json 字典中提取数据:
import pandas as pd
data = []
for item in raw_data.get('metrics'):
tp = 0
lp = 0
for name in item.get('value'):
if 'tp' in name.values():
tp = name.get('value')
if 'lp' in name.values():
lp = name.get('value')
data.append([item.get('name'), tp, lp])
df = pd.DataFrame(data, columns=['name', 'ip', 'lp'])
输出:
name ip lp
0 ISRC w/SES On-Demand 2810 2450
1 ISRC w/SES On-Demand Audio 2735 2384
2 Digital Tracks 21 19
3 Streaming On-Demand Total 395705 348276
4 Streaming On-Demand Audio 367707 323399
5 Streaming On-Demand Video 27998 24877
6 Streaming Programmed Total 187 153
推荐阅读
- angular - Mat-dialog:路由到另一个组件时保持打开状态
- javascript - 如何过滤数组中的最后一天?
- javascript - 使用 Angular 在 MxGraph 上覆盖 graphHandlerMouseUp 时的无限循环
- hex - 如何理解“Mifare classic 1k”的内容?
- unix - fslmaths 减法函数给出错误:找不到输出
- excel - VBA根据单元格值乘以另一个工作表中的单元格
- fortran - gfortran 中带有字符的数组边界警告
- java - 如何使用 1 个 Spring Batch 作业来处理多个请求
- javascript - window.print() 不仅提供选定的选项
- angular - 如何在使用 Angular 8 上传到服务器端之前加密图像?