Запись json в Excel библиотека Pandas

Есть функция которая записывает JSON данные в файл Excel:

import json
import pandas as pd


def Json_to_Excel(json_data):
    pd.read_json(json_data, convert_axes=True).to_excel('file_name.xlsx', index=False)


json_data = [{'DateForm': '2024-01-12'},
             {'GUID': '15f24792-3013-410b-97bd-cea4d08cf9c5'},
             {'ListType': '4'},
             {'Region': 'Такого тега нет в файле'},
             {'ObjectsType': '002001002000'},
             {'Categories': 'Такого тега нет в файле'}]

Json_to_Excel(json.dumps(json_data))

Вывод данных из функции Json_to_Excel() несколько неожиданный:

D:\Python\OKS16\OKS_16\OKS_16.py:149: FutureWarning: Passing literal json to 'read_json' is deprecated and will be removed in a future version. To read from a literal string, wrap it in a 'StringIO' object.
  print(pd.read_json(json_data, convert_axes=True))
0  2024-01-12  ...                      NaN
1         NaN  ...                      NaN
2         NaN  ...                      NaN
3         NaN  ...                      NaN
4         NaN  ...                      NaN
5         NaN  ...  Такого тега нет в файле

[6 rows x 6 columns]

Process finished with exit code 0

Как можно исправить код, что бы данные записывались в одну строку без NaN


Ответы (1 шт):

Автор решения: strawdog

вероятно. вам нужно что-то такое:

from io import StringIO


def Json_to_Excel(json_data):
    df = pd.read_json(StringIO(json_data))
    df = df.apply(lambda x: pd.Series(x.dropna().values))
    # df.to_excel('file_name.xlsx', index=False)
→ Ссылка