Импортируйте несколько выбранных файлов json из каталога файлов с помощью Python

#python #json #pandas #import

#python #json #pandas #импорт

Вопрос:

У меня в папке более 23000 файлов json.

В целях тестирования я хотел бы прочитать только 10 файлов.

 # Read several files
file1 = 'tweets201706221015.json'
file2 = 'tweets201706221115.json'
file3 = 'tweets201706221215.json'
file4 = 'tweets201706221315.json'
file5 = 'tweets201706221415.json'
file6 = 'tweets201706221515.json'
file7 = 'tweets201706221615.json'
file8 = 'tweets201706221715.json'
file9 = 'tweets201706221815.json'
file10 = 'tweets201706221915.json'
 

Или даже лучше — случайным образом выбранные 10 файлов json.

Я нашел этот ответ, но он просто считывает json файлы из папки, для меня это не проблема. Мне нужна только небольшая выборка данных.

Мой код:

 directory = some directory
files = [file1, file2, file3, file4, file5, file6, file7, file8, file9, file10]

path = directory   files
 

Комментарии:

1. В чем конкретно ваша проблема? Вы не включили какой-либо подход или код — вы пробовали перебирать свои файлы и читать каждое поле по отдельности?

2. Я попытался создать список файлов files = [file1, file2, file3, file4, file5, file6, file7, file8, file9, file10] , а затем прочитать как path = directory files , но это не так просто. Спасибо!

3. Это именно так просто! Пожалуйста, обновите свой вопрос с помощью кода, иначе у нас возникнут трудности с отладкой.

Ответ №1:

Как упоминалось в разделе комментариев выше, просто создайте обычный список и выполните итерацию по каждому имени файла, например:

 #For simplicity reasons just three files - you can use a generator or read the filenames from the directory
files = ['file1.json', 'file2.json', 'file3.json']

for file in files:
   f = open(file)
   #Do your stuff with the file
   f.close()
 

Ответ №2:

Сначала используйте os.listdir(), чтобы получить список всех файлов JSON из каталога, затем случайным образом выберите 10 файлов из этого списка. Затем, наконец, вы можете перебрать эти 10 файлов для загрузки, используя обычную функцию открытия.

Это должно помочь выбрать случайным образом www.geeksforgeeks.org/randomly-select-n-elements-from-list-in-python/amp /

Ответ №3:

 #Simply use a for loop to get files to name and then read each file.

for i in range (10):
    filename = "tweets201706221%s15.json" % i

    for line in open(filename, 'r'):
        print(line)
 

Ответ №4:

Для случайного выбора из каталога,

 import os
import random 

# pick ten files from the /json/dir directory
ten_files = random.choices(os.listdir('/json/dir'), k=10)

for fi in ten_files:
    with open(f'/json/dir/{fi}') as in_file:
        # do something with in_file
 

Комментарии:

1. Замечательно! Спасибо, что уделили мне время!