Автоматизируйте чтение и сохранение нескольких файлов json (с разной информацией) в разные кадры данных pandas. - PullRequest
0 голосов
/ 09 мая 2018

У меня есть несколько файлов json в папке, каждый из которых имеет различную форму (количество строк и столбцов) и информацию.

У меня есть следующий код, чтобы открыть и сохранить файл json в dand pandas:

with open('f_fruit.json', 'r') as f:
    data = json.load(f)

df_fruit = pd.DataFrame(data['fruit'])

В конце я хотел бы иметь разные кадры данных для панд, по одному на каждый файл json:

df_fruit

df_clothes

df_games

Как лучше всего автоматизировать этот код, учитывая, что имена файлов и информация не соответствуют шаблону? Является ли это возможным?

1 Ответ

0 голосов
/ 09 мая 2018

Предполагая, что ваши файлы названы в соответствии с той же логикой, я сделал бы следующее:

files = ['f_fruit.json','f_clothes.json','f_games.json'] #you can use os.walk to get a list of files from a specific folder

for file_name in files:
    col_name = file_name.split('.')[0][2:]
    with open(file_name, 'r') as f:
        data = json.load(f)
    var_name = 'df_{}'.format(col_name)
    globals()[var_name] = pd.DataFrame(data[col_name])

Однако, если

имена файлов и информация не соответствуют шаблону

тогда нет простого способа автоматизировать это. Вам нужен шаблон.

Здесь та часть, которая вам, вероятно, интересна, т.е. как создать переменную из значения, уже находящегося в памяти, с помощью globals().

>>> col_name = 'fruit'
>>> var_name = 'df_{}'.format(col_name)
>>> globals()[var_name] = 'some value'
>>> df_fruit
'some value'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...