python中的dict类型数据如何获取_如何在Python中获取每一列都有一个字典的列的信息...

这里有一个解决方案,无论具有不同键的字典还是包含字典和其他类型混合的列都可以工作。在

注意:我已经删除了请求的API密钥,您需要重新添加它。在from functools import partial

import itertools

import pandas as pd

import requests as rq

api_key = ""

url = "https://api.tfl.gov.uk/Road/A2%2C%20A406%2C%20A1%2C%20A12%2C%20A13/Disruption?app_id= XXXXXX&app_key={}".format(api_key)

r = rq.get(url)

r = r.text

df7 = pd.read_json(r)

output_path = "disruptions.csv"

def keys_if_dict(element):

if isinstance(element, dict):

return list(element.keys())

return list()

def value_for_key(element, key):

if isinstance(element, dict) and key in element:

return element[key]

return None

def handle_dicts_in_column(df, column_name):

column = df[column_name]

if any(map(lambda x: isinstance(x, dict), column)):

# this column has dictionaries in it

column_dict_keys = set(itertools.chain.from_iterable(column.transform(keys_if_dict)))

for dict_key in column_dict_keys:

column_name_from_dict_key = "{}_{}".format(column_name, dict_key)

while column_name_from_dict_key in df.columns:

column_name_from_dict_key += "(dup)"

df[column_name_from_dict_key] = column.transform(partial(value_for_key, key=dict_key))

if any(map(lambda x: isinstance(x, dict), df[column_name_from_dict_key])):

handle_dicts_in_column(df, column_name_from_dict_key)

for column_name in df7.columns:

handle_dicts_in_column(df7, column_name)

df7.to_csv(output_path)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值