У меня небольшая проблема с моим кодом. Я работаю с извлечением данных из 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])