Я пытался открыть несколько файлов JSon сразу затем записать их обратно в Python с этим кодом, но его дает мне сообщение об ошибке:Нет файла JSON не может быть расшифрованы, но если я открыть конкретное имя файла, которое работает
ValueError: No JSON object could be decoded
код:
def get_children(node):
for child in node['children']:
yield child
for grandchild in get_children(child):
yield grandchild
cell_info= open('/Users/massess/Desktop/assignment/cellinfo.text', 'w')
dir_path = '/Users /massess /Desktop /assignment /json'
for filename in os.listdir(dir_path):
cell_info.write("%s" %(filename))
f = open(os.path.join(dir_path,filename), 'r')
data = json.load(f)
#prints the root node
cell_info.write("%s\t%s\t%s\t%s\t%s\n" (data["CellName"],data["Event"], data["Minutes (E)"], data["X (E)"], data["Y (E)"]))
# prints all children of the root node
for child in get_children(data):
cell_info.write("%s\t%s\t%s\t%s\t%s\n" %(child["CellName"], child["Event"], child["Minutes (E)"], child["X (E)"], child["Y (E)"]))
cell_info.close()
Однако, когда я использую этот код, чтобы открыть один конкретный файл JSON, это работает!
f = open('path\\to\\.json', 'r')
data = json.load(f)
Спасибо за вашу помощь, заранее
Исправьте углубление. Это важно в Питоне. И почему в дорожках есть места? –
Можете ли вы исправить отступы в опубликованном коде? 'os.listdir' перечисляет подкаталоги, а также файлы. Вы можете использовать файл 'os.path.isfile', чтобы отфильтровать их. Этот каталог также содержит файлы, отличные от json? Должны ли файлы json следовать шаблону, например, заканчиваться на .json? Если да, возможно, 'glob.glob (" yourpath/*. Jsoin ")' является лучшим выбором. В любом случае распечатайте имя файла, которое не работает, и посмотрите на это. – tdelaney
@tdelaney Я пробовал оба из того, что вы сказали, а затем он дает мне ту же ошибку такая же ошибка, когда я пытаюсь решить любое решение, я также исправил отступ –