Skip to content
Home » Reading JSON Object and Files with Pandas

Reading JSON Object and Files with Pandas

JSON or JavaScript Object Notation is a popular file format for storing semi-structured data. Transforming it to a table is not always easy and sometimes downright ridiculous. However, Pandas offers the possibility via the read_json function. If you are not familiar with the orient argument, you might have a hard time.

First, let’s take a look at the read_json() documentation. In my opinion, one of the most valuable arguments that you can pass to this function is the orient argument, because it give an indication of how your JSON file is structured.

'split' : dict like {index -> [index], columns -> [columns], data -> [values]}
'records' : list like [{column -> value}, ... , {column -> value}]
'index' : dict like {index -> {column -> value}}
'columns' : dict like {column -> {index -> value}}
'values' : just the values array

When you want to read your JSON file or object into a Pandas object, you’re gonna have to find the right value for the orient argument. To help you understand these five formats, let’s go over all of them.

Read_json with split

In the following lines of code I created a JSON string that matches the split orientation. You can see that I specified three required keys: columns, index and data.

json_split = json.dumps({
    "columns": ["weight","count"],
    "index": ["apples","bananas","cherries","pears"],
    "data": [[5,20],[8,30],[2,120],[4,16]]
})
pd.read_json(json_split, orient = 'split')

There’s not much flexibility here. If you change the keys (other than columns, index or data), you’ll run into the following error.

in check_keys_split
 raise ValueError(f"JSON data had unexpected key(s): {bad_keys}")
ValueError: JSON data had unexpected key(s)

If you add extra values to a particular row, you’ll be greeted with another error:

in _list_to_arrays
 raise ValueError(e) from e
ValueError: X columns passed, passed data had X columns

However, you can mix data types.

READ_JSON WITH records

When we use the split orientation, we assume that on every line, we specified a key and a value, with a key matching the column and — for each row — its value matching the values in that column.

json_record = json.dumps([
    {"fruit":"apples","weight":5,"count":20},
    {"fruit":"bananas","weight":8,"count":30},
    {"fruit":"cherries","weight":2,"count":120},
    {"fruit":"pears","weight":4,"count":16}
])
pd.read_json(json_record, orient = 'records')

There’s a lot more flexibility here. Passing more or less key-value pairs on a specific row works just fine. When rows don’t have a specific key, the np.nan value will be inserted instead.

READ_JSON WITH index

Another orientation to suit your semistructured data needs is index. On the highest level, you specify the row index, and on the next level, the key matches the column name.

json_index = json.dumps({
    "apples": {
        "weight": 5, 
        "count": 20
        },
    "bananas": {
        "weight": 8, 
        "count": 30
        },
    "cherries": {
        "weight": 2, 
        "count": 120
        },
    "pears": {
        "weight": 4, 
        "count": 16
        }

})
pd.read_json(json_index, orient = 'index')

As I said, also flexible. It will insert np.nan values in the rows that do not contain a specific key.

READ_JSON WITH Columns

The columns orientation is the pivoted version of the index orientation. On the highest level, you specifiy the columns, while on the next level, the key matches the row index name.

json_columns = json.dumps({
    "weight": {
        "apples": 5,
        "bananas": 8,
        "cherries": 2,
        "pears": 4
    },
    "count": {
        "apples": 20,
        "bananas": 30,
        "cherries": 120,
        "pears": 16
    }
})
pd.read_json(json_columns, orient = 'columns')

It’s also very flexible, because you can specify indices in one column, without specifying them in the other; np.nan will be inserted.

READ_JSON WITH values

Finally, when your JSON file or object does not contain any column or index names, go for the values orientation. Just like the previous orientations, the values per row can differ.

json_values = json.dumps([
    ["apples", 5, 20],
    ["bananas", 8, 30],
    ["cherries", 2,120],
    ["pears", 4, 16]

])
pd.read_json(json_values, orient = 'values')

There’s also the table orientation. In my opinion, it’s unlikely you’ll find this “in the wild”. It seems like an efficient way to store sparse data frames, however.

By the way, I didn’t necessarily come up with this solution myself. Although I’m grateful you’ve visited this blog post, you should know I get a lot from websites like StackOverflow and I have a lot of coding books. This one by Matt Harrison (on Pandas 1.x!) has been updated in 2020 and is an absolute primer on Pandas basics. If you want something broad, ranging from data wrangling to machine learning, try “Mastering Pandas” by Stefanie Molin.

Say thanks, ask questions or give feedback

Technologies get updated, syntax changes and honestly… I make mistakes too. If something is incorrect, incomplete or doesn’t work, let me know in the comments below and help thousands of visitors.

Happy coding!

Say thanks, ask questions or give feedback

Technologies get updated, syntax changes and honestly… I make mistakes too. If something is incorrect, incomplete or doesn’t work, let me know in the comments below and help thousands of visitors.

21 thoughts on “Reading JSON Object and Files with Pandas”

  1. When we use the split orientation, we assume that on every line, we specified a key and a value,
    -> When we use the “records” orientation, we assume that on every line, we specified a key and a value,

  2. На данном сайте вы найдёте полезную информацию о витаминах для улучшения работы мозга. Также здесь представлены рекомендации специалистов по выбору подходящих добавок и способах улучшения когнитивных функций.
    https://collin8is1p.blogozz.com/31403517/2-минутный-Правило-витамины-для-мозга

  3. На данном сайте вы можете заказать подписчиков для Telegram. Доступны качественные аккаунты, которые способствуют развитию вашего канала. Быстрая накрутка и стабильный прирост обеспечат эффективный рост подписчиков. Цены выгодные, а процесс заказа не требует лишних действий. Начните продвижение уже сегодня и нарастите аудиторию своего канала!
    Накрутка подписчиков в Телеграм живые ссылка бесплатно

  4. На данном сайте вы можете заказать подписчиков для Telegram. Мы предлагаем активные аккаунты, которые помогут развитию вашего канала. Оперативная доставка и гарантированный результат обеспечат эффективный рост подписчиков. Тарифы выгодные, а оформление заказа не требует лишних действий. Начните продвижение уже сегодня и увеличьте аудиторию своего канала!
    Накрутка подписчиков в Телеграм живые ссылка бесплатно

  5. В условиях большого города доставка еды стала неотъемлемой частью повседневной жизни. Большинство горожан ценят удобство, которое она предоставляет, позволяя освободить время. В последние годы доставка еды — это не только способ быстро перекусить, но и важная часть в жизни busy людей. Множество сервисов предлагают разнообразие блюд, что делает этот сервис особенно актуальным для людей, ценящих комфорт и вкус. Без удобства быстрой доставки сложно представить жизнь в мегаполисе, где каждый день приносит новые задачи и вызовы.
    https://www.canal-web.net/ngpc/viewtopic.php?p=73093#p73093

  6. В этом разделе вы можете перейти на рабочую копию сайта 1хбет без трудностей.
    Мы регулярно обновляем зеркала, чтобы облегчить беспрепятственный доступ к ресурсу.
    Работая через альтернативный адрес, вы сможете пользоваться всеми функциями без ограничений.
    зеркало 1хбет
    Эта страница обеспечит возможность вам моментально перейти на новую ссылку 1 икс бет.
    Мы стремимся, чтобы все клиенты был в состоянии использовать все возможности.
    Проверяйте новые ссылки, чтобы всегда быть онлайн с 1 икс бет!

  7. 在这个网站上,您可以聘请专门从事临时的高风险任务的执行者。
    我们提供大量经验丰富的从业人员供您选择。
    无论面对何种危险需求,您都可以方便找到胜任的人选。
    如何雇佣杀手
    所有合作人员均经过审核,确保您的利益。
    平台注重效率,让您的个别项目更加安心。
    如果您需要具体流程,请直接留言!

  8. На этом сайте вы сможете найти подробную информацию о реферальной системе: 1win партнерская программа.
    Здесь размещены все нюансы работы, правила присоединения и ожидаемые выплаты.
    Каждый раздел четко изложен, что позволяет легко понять в аспектах функционирования.
    Кроме того, есть разъяснения по запросам и рекомендации для начинающих.
    Контент дополняется, поэтому вы смело полагаться в достоверности предоставленных данных.
    Портал будет полезен в изучении партнёрской программы 1Win.

  9. Прямо здесь можно получить Telegram-бот “Глаз Бога”, который собрать всю информацию о гражданине из открытых источников.
    Сервис функционирует по ФИО, используя актуальные базы в Рунете. С его помощью можно получить пять пробивов и полный отчет по запросу.
    Платфор ма проверен согласно последним данным и охватывает аудио-материалы. Сервис сможет проверить личность в открытых базах и предоставит результаты за секунды.
    глаз бога найти телефон
    Данный сервис — идеальное решение в анализе граждан удаленно.

  10. Этот бот поможет получить информацию по заданному профилю.
    Достаточно ввести никнейм в соцсетях, чтобы сформировать отчёт.
    Система анализирует публичные данные и цифровые следы.
    глаз бога программа для поиска
    Результаты формируются в реальном времени с проверкой достоверности .
    Оптимален для проверки партнёров перед важными решениями.
    Анонимность и точность данных — наш приоритет .

  11. Хотите собрать данные о человеке ? Наш сервис поможет детальный отчет в режиме реального времени .
    Используйте уникальные алгоритмы для поиска публичных записей в открытых источниках.
    Выясните контактные данные или активность через систему мониторинга с верификацией результатов.
    глаз бога
    Система функционирует в рамках закона , обрабатывая общедоступную информацию.
    Получите детализированную выжимку с историей аккаунтов и списком связей.
    Попробуйте проверенному решению для исследований — точность гарантирована!

  12. Наш сервис поможет получить данные о любом человеке .
    Укажите никнейм в соцсетях, чтобы сформировать отчёт.
    Система анализирует публичные данные и цифровые следы.
    глаз бога программа для поиска людей бесплатно
    Результаты формируются в реальном времени с фильтрацией мусора.
    Идеально подходит для анализа профилей перед сотрудничеством .
    Конфиденциальность и актуальность информации — гарантированы.

  13. Нужно найти информацию о пользователе? Наш сервис поможет полный профиль мгновенно.
    Воспользуйтесь уникальные алгоритмы для анализа публичных записей в соцсетях .
    Узнайте место работы или интересы через автоматизированный скан с гарантией точности .
    глаз бога телега
    Бот работает с соблюдением GDPR, обрабатывая общедоступную информацию.
    Закажите расширенный отчет с геолокационными метками и графиками активности .
    Попробуйте проверенному решению для исследований — точность гарантирована!

  14. Подбирая семейного медика важно учитывать на квалификацию, умение слушать и доступность услуг .
    Проверьте , что медицинский центр удобна в доезде и сотрудничает с узкими специалистами.
    Спросите, работает ли доктор с вашей полисом, и есть ли возможность записи онлайн .
    https://graph.org/Prover-zdorove-prostaty-pochemu-ehto-vazhno-posle-35-07-01
    Обращайте внимание рекомендации знакомых, чтобы понять уровень доверия .
    Не забудьте наличие профильного образования, аккредитацию клиники для гарантии безопасности .
    Оптимальный вариант — тот, где примут во внимание ваши особенности здоровья, а процесс лечения будет максимально прозрачным.

  15. В этом ресурсе предоставляется информация по запросу, в том числе подробные профили.
    Базы данных содержат людей любой возрастной категории, статусов.
    Информация собирается по официальным записям, что гарантирует точность.
    Обнаружение осуществляется по контактным данным, что делает работу удобным.
    рабочий глаз бога телеграм
    Также доступны места работы плюс полезная информация.
    Все запросы обрабатываются в соответствии с законодательства, предотвращая несанкционированного доступа.
    Обратитесь к предложенной системе, для поиска искомые данные без лишних усилий.

  16. Ответственная игра — это комплекс мер , направленный на предотвращение рисков, включая поддержку уязвимых групп.
    Сервисы должны внедрять инструменты саморегуляции , такие как лимиты на депозиты , чтобы избежать чрезмерного участия.
    Обучение сотрудников помогает выявлять признаки зависимости , например, неожиданные изменения поведения .
    сайт вавада
    Предоставляются ресурсы консультации экспертов, где обратиться за поддержкой при проявлениях зависимости.
    Соблюдение стандартов включает проверку возрастных данных для обеспечения прозрачности.
    Задача индустрии создать безопасную среду , где риск минимален с вредом для финансов .

  17. Хотите собрать информацию о пользователе? Наш сервис поможет детальный отчет мгновенно.
    Используйте уникальные алгоритмы для поиска цифровых следов в открытых источниках.
    Узнайте место работы или интересы через систему мониторинга с гарантией точности .
    глаз бога информация о человеке
    Бот работает с соблюдением GDPR, используя только общедоступную информацию.
    Закажите детализированную выжимку с историей аккаунтов и графиками активности .
    Попробуйте надежному помощнику для digital-расследований — точность гарантирована!

  18. На этом сайте представлены авторские видеоматериалы моделей, созданные с вниманием к деталям .
    Контент включает портфолио , редкие материалы, подписные серии для различных предпочтений .
    Материалы модерируются перед публикацией, чтобы гарантировать качество и безопасность просмотра.
    фото студенток
    Чтобы упростить поиск посетителей добавлены категории жанров, возрастным группам .
    Сайт гарантирует конфиденциальность и защиту авторских прав согласно международным нормам .

  19. Подбирая компании для квартирного перевозки важно учитывать её лицензирование и репутацию на рынке.
    Изучите отзывы клиентов или рейтинги в интернете, чтобы оценить надёжность исполнителя.
    Сравните цены , учитывая объём вещей, сезонность и услуги упаковки.
    https://kuplukvartiru.com.ua/forum-nerukhomosti/remont-y-dyzain-kvartyr/15135-zakazat-kvartirnyj-pereezd-s-gruzchikami#38856
    Убедитесь наличия страхового полиса и запросите детали компенсации в случае повреждений.
    Оцените уровень сервиса: оперативность ответов, детализацию договора.
    Узнайте, используются ли специализированные автомобили и защитные технологии для безопасной транспортировки.

  20. Осознанное участие в азартных развлечениях — это принципы, направленный на защиту участников , включая поддержку уязвимых групп.
    Сервисы должны внедрять инструменты саморегуляции , такие как временные блокировки, чтобы минимизировать зависимость .
    Регулярная подготовка персонала помогает выявлять признаки зависимости , например, частые крупные ставки.
    вавада вход
    Для игроков доступны консультации экспертов, где обратиться за поддержкой при проблемах с контролем .
    Следование нормам включает аудит операций для предотвращения мошенничества .
    Ключевая цель — создать условия для ответственного досуга, где риск минимален с вредом для финансов .

Leave a Reply

Your email address will not be published. Required fields are marked *