Одна функция вместо 4 для извлечения данных из структуры JSON в Pandas DataFrame - PullRequest
0 голосов
/ 04 марта 2020

У меня небольшая проблема с моим кодом. Я работаю с извлечением данных из API и изменением их на pandas DataFrame в Python. Для этих целей я написал несколько небольших функций, которые помогают мне извлекать данные из JSON документов. Я знаю, что эти функции очень похожи, и мой вопрос для Вас заключается в том, чтобы можно было написать одну функцию, которую я могу ввести в качестве значений параметров, которые я хочу извлечь, например, unpack(x,'country', 'shortName'), и функция извлечет x['country']['shortName'], а если я напишу unpack(x,'city') это будет извлекать x['city']? Я не знаю, объяснил ли я это достаточно, но в заключение я хотел бы иметь одну функцию вместо 4. Можете ли вы помочь мне с этим?

def unpack_shortname(x):
    try:
        return x['country']['shortName']
    except:
        return None

def unpack_country(x):
    try:
        return x['country']['value']
    except:
        return None

def unpack_postcode(x):
    try:
        return x['postCode']['value']
    except:
        return None

def unpack_city(x):
    try:
        return x['city']
    except:
        return None

data['country_short'] = data['addresses'].apply(
        lambda x: [unpack_shortname(i) for i in x][0])
data['country'] = data['addresses'].apply(
            lambda x: [unpack_country(i) for i in x][0])
data['postCode'] = data['addresses'].apply(
        lambda x: [unpack_postcode(i) for i in x][0])
data['city'] = data['addresses'].apply(
        lambda x: [unpack_city(i) for i in x][0])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...