похоже, вы просто хотите сгладить структуру JSON. Это будет проще всего сделать из списка «Автор». Поскольку CSV переименовал столбцы, вам понадобится какой-то способ представить это отображение. На основании только примера это работает:
import json
fin=open(some_json_file, 'r')
j=json.load(fin)
result=[]
for author in j['Author']:
val = {'book_serialno': j['BOOK']['serialno'],
'book_author': j['BOOK']['author'],
'book_yearofpublish': j['BOOK']['yearofpublish'],
'book_price': j['BOOK']['price'],
'author_isbn': author['isbn'],
'author_title': author['title'],
'author_publisher': author['publisher'],
'author_year': author['year']}
result.append(val)
Используется словарь для отображения сопоставления точек данных с именами новых столбцов. Возможно, вам удастся избежать использования списка. Зависит от того, как вы хотите использовать его позже. Для записи в CSV:
import csv
fout=open(some_csv_file, 'w')
writer=csv.writer(fout)
writer.writerow(result[0].keys())
writer.writerows(r.values() for r in result)
Это записывает имена столбцов в первой строке, а затем данные. Если вам не нужны имена столбцов, просто пропустите строку writerow(...)
.