Python Скрипт для преобразования списка в формат JSON - PullRequest
0 голосов
/ 19 апреля 2020

Добрый день, я новичок в python. Я пытаюсь написать программу, которая принимает документ Excel, содержащий список книг и авторов, выбирая только столбец авторов и разбивая его на имя и фамилию, а затем записывая в файл json. В настоящее время я успешно могу завершить загрузку, извлечение и разбиение данных. Но я понятия не имею, как сохранить его как json. Список авторов составляет около 100+. Ниже приведен код, который я написал:

import pandas as pd

def unique(list1): 
    unique_list = [] 

    # traverse for all elements 
    for x in list1: 
        # check if exists in unique_list or not 
        if x not in unique_list: 
            unique_list.append(x) 

    return unique_list

tbr = pd.read_excel('TBR.xlsx')
idx_of_column = 3-1
authors =  tbr.iloc[:,idx_of_column]
# print(authors)
authors_list = authors.values.tolist()
cleaned_author_List = [x for x in authors_list if str(x) != 'nan']

unique_cleaned_author_list = unique(cleaned_author_List)

for fullname in unique_cleaned_author_list:
    firstname = fullname.strip().split(' ')[0]
    lastname = ' '.join((fullname + ' ').split(' ')[1:]).strip()
    print('FirstName: ',firstname)
    print('Lastname: ',lastname)

Любая помощь будет оценена. Спасибо

1 Ответ

1 голос
/ 19 апреля 2020

Используйте json.dumps() для сериализации вашего списка в строку JSON и записи его в файл:

import json

...

names = []
for fullname in unique_cleaned_author_list:
    firstname = fullname.strip().split(' ')[0]
    lastname = ' '.join((fullname + ' ').split(' ')[1:]).strip()

    names.append({
        'first_name': firstname,
        'last_name': lastname,
    })

with open('names.json', 'w') as f:
   print(json.dumps(names), file=f)
...