python - Python字典到数据框问题
问题描述
我正在尝试接受 api 请求并将它们放在 SQL 可访问的格式中 - 目前我有嵌套的字典,我不确定如何快速修复。
这是目前的代码,
timestr = time.strftime("%Y%m%d-%H%M%S")
Name= "swing_data_"+timestr+".json"
api_results = {}
for items in States:
url = url_swing + items
request = requests.get(url)
api_results[items]=(request.json())
with open(Name, 'w') as f:
json.dump(api_results, f)
和这样的数据帧输出
df = pd.DataFrame.from_dict([api_results])
df.head()
刚刚编辑的问题,
想要格式化数据,列是类型、郊区等,并将状态作为另一列
解决方案
创建DataFrame
s 的字典,然后通过 连接在一起concat
,最后删除第二级MultiIndex
,rename
并将索引转换为列key
:
d = {k: pd.DataFrame(v) for k, v in api_results.items()}
df = pd.concat(d).reset_index(level=1, drop=True).rename_axis('key').reset_index()
print (df)
key type suburb street oldRange \
0 VIC House Carlton North 114 Garton Street $4,400,000 - $4,800,000
1 VIC House Fitzroy North 24 Egremont Street $1,600,000 - $1,750,000
2 VIC House Hamlyn Heights 6 Heritage Drive $1,180,000 - $1,280,000
3 VIC House Caulfield South 24 Emma Street $1,900,000 - $2,089,999
newRange dollarDelta percentDelta daysDelta
0 $4,100,000 -$700,000 -14% 42
1 $1,950,000 - $2,100,000 $350,000 20% 62
2 $990,000 - $1,050,000 -$230,000 -17% 82
3 $1,800,000 - $1,980,000 -$109,999 -5% 33
如果可能,请DataFrame
在第一个循环中创建 s:
api_results = {}
for items in States:
url = url_swing + items
request = requests.get(url)
api_results[items]= pd.DataFrame(request.json())
df = pd.concat(api_results).reset_index(level=1, drop=True).rename_axis('key').reset_index()
推荐阅读
- amazon-web-services - 从 AWS lambda 函数访问参数存储字符串时出错
- mysql - MySQL:GROUP BY 和 ORDER BY 最新值
- r - R 会话在 randtest {ade4} 后中止
- android - 如何编写代码(当您按下按钮时,您无法再次选择)
- sass - 在 SASS 中,如何从函数返回列表?
- cookies - Laravel Cookies 中的额外字符串和管道字符
- ios - 无法从 swift 中的 JSON 字典数组中获取值
- reactjs - 这是什么警告,我该如何解决?
- database - 在redis中散列哈希
- reactjs - 如果组件包含图像元素,则会给出类型错误