Запись IP2Location в Pandas DataFrame

Я использовал IP2Location для сбора информации об IP-адресах, и я хочу, чтобы она была в DataFrame, но когда я попытался использовать pd.json_normalize(ip)У меня ошибка. AttributeError: 'IP2LocationRecord' object has no attribute 'values'

Информация, которую я получил от IP2Location, имеет следующий формат:

{'ip': '66.249.79.244', 'country_short': 'US', 'country_long': 'United States of America', 'region': 'California', 'city': 'Mountain View', 'latitude': 37.405991, 'longitude': -122.078514, 'zipcode': '94043', 'timezone': '-08:00'}

Я также пытался использовать pd.DataFrameно результаты в df были пусты, были видны только имена столбцов.

df = pd.DataFrame(ip, columns = ['ip','country_short','country_long','region','city','latitude','longitude','zipcode','timezone'])

Ожидаемый результат

           ip               country_short    country_long        ....       zipcode      timezone
0    66.249.69.244    US               United States of America       94043        -08:00

1 ответ

Пожалуйста, обратите внимание на ошибку:

AttributeError: 'IP2LocationRecord' object ...

То, что вы пытаетесь сделать, это преобразовать объект типа в pandas.DataFrameчто невозможно напрямую (вы должны напрямую распаковать все значения или создать словарь из полей IP2LocationRecord). Что вы видите здесь:

      {'ip': '66.249.79.244', 'country_short': 'US', 'country_long': 'United States of America', 'region': 'California', 'city': 'Mountain View', 'latitude': 37.405991, 'longitude': -122.078514, 'zipcode': '94043', 'timezone': '-08:00'}

на самом деле repr(ip) ссылка repr python3 (а не словарь)

Другие вопросы по тегам