Мне удалось извлечь URL-адрес, используя приведенный ниже код. Обратите внимание, что мне пришлось сделать некоторые предположения о том, может ли список содержать более одного JSON (следовательно, более одного URL-адреса).
Вы можете спокойно игнорировать строки, которые устанавливают фрейм данных, поскольку у вас уже должно быть ваш сделал, они мне нужны для проверки результатов.
import pandas as pd
def geturls(image_list):
URL_List = []
for image in image_list:
if image['DigitalAsset']['DigitalAssetType']['DigitalAssetTypeName'] == 'Building Image':
URL_List.append(image['DigitalAsset']['URL'])
return URL_List
Json_List_A = [
{'DigitalAsset': {
'URL': 'Random URL 1',
'DigitalAssetType': {
'DigitalAssetTypeName': 'Building Image'
},
'URLType': {
'URLTypeName': 'Secure URL'
}
},
'PropertyDigitalAssetID': 18283747,
},
{'DigitalAsset': {
'URL': 'Random URL 2',
'DigitalAssetType': {
'DigitalAssetTypeName': 'Not a Building'
},
'URLType': {
'URLTypeName': 'Secure URL'
}
},
'PropertyDigitalAssetID': 13747,
}
]
Json_List_B = [
{
'DigitalAsset': {
'URL': 'Random URL A',
'DigitalAssetType': {
'DigitalAssetTypeName': 'Building Image'
},
'URLType': {
'URLTypeName': 'Secure URL'
}
},
'PropertyDigitalAssetID': 82747,
},
{
'DigitalAsset': {
'URL': 'Random URL B',
'DigitalAssetType': {
'DigitalAssetTypeName': 'Building Image'
},
'URLType': {
'URLTypeName': 'Secure URL'
}
},
'PropertyDigitalAssetID': 1827,
}
]
data = {'PropertyID': ['762', '771'],
'PropertyDigitalAsset': [Json_List_A, Json_List_B],
}
df = pd.DataFrame (data, columns = ['PropertyID','PropertyDigitalAsset'])
df['url'] = df['PropertyDigitalAsset'].apply(lambda x: geturls(x))
print(df)
Первые несколько строк настроены так, чтобы показать, что он работает с образцами данных. (если ваши данные отличаются от тех, которые я предполагал, оставьте комментарий, и я могу изменить функции по мере необходимости)
Я создал вспомогательную функцию для извлечения URL-адресов из каждой строки и позволил pandas применить функция сделает все остальное.