Я пытался создать инструмент аннотации в python, чтобы редактировать большой CSV-файл и генерировать вывод JSON, но, будучи новым программистом, я столкнулся с множеством трудностей.
У меня есть два CSV-файла, которые я сгенерировал, а затем получил список строк и столбцов, которые я хотел сопоставить из одного файла:
отфильтрованный список столбцов и строк
А у другого файла есть список выходных данных, с которыми я хотел сопоставить и собрать указанную запись данных: необработанные выходные данные
Например, я хотел бы напечатать данные в строке 6 из столбца Q5.3 вместе с исходным вопросом, а затем указать, хорошо это или плохо. Если это плохо, я хочу добавить комментарий.
Я хотел бы создать файл json, который в конце концов скомпилирует это. Я пытался написать код, но это был полный мусор, я надеялся, что смогу понять, как правильно его реализовать, и просто запутался.
Любая помощь будет очень признательна!
Выходные данные должны пройти через все указанные данные и вывести:
Номер вопроса,
Вопрос,
Отклик,
Аннотировать как хороший или плохой,
Если плохо, то можете добавить комментарий,
Перейти к следующей части данных,
Когда закончите, сгенерируйте JSON для данных
Спасибо :)
Моя попытка:
import csv
from csv import reader
import json
csv_results_path = 'results.csv'
categories = { '1':'Unacceptable', '2':'Edit'}
# Checking the outputs (comment out)
''''
print(rows)
print(columns)
'''
'''
# Acquire data from specifed row, column in responses
# Example row 6, column '12.2'
'''
def get_annotation_input():
while True:
try:
annotation = int(input("Annotation: "))
if annotation not in range (1,3):
raise ValueError
return annotation, edited_comment
except ValueError:
print("Enter 1 or 2")
def annotate():
annotator = input("What is your name? ")
print(''.join(["-"]*50))
print("Annotate the following answer as 1-Unacceptable, 2-Edit")
with open("annotations.json", mode='a') as annotation_file:
annotation_data = ('annotator': annotator, 'row_number':, 'question_number': , 'annotation' : categories[str(annotation)], 'edited_response': }
json.dump(annotation_data, annotation_file)
annotation_file.write('\n')
if __name__ == "__main__":
annotate()
with open('annotations_full.csv', 'rU') as infile:
response_reader = csv.DictReader(infile)
responses = {}
for row in response_reader:
for header, response in row.items():
try:
responses[header].append(response)
except KeyError:
responses[header] = [response]
rows = responses['row_number']
columns = responses['question_number']
print(rows)
print(columns)
Мне удалось получить список нужных мне строк и столбцов, однако мне трудно получить доступ к данным в другом CSV-файле, используя строку и соответствующий столбец для отображения и аннотирования. Кроме того, когда я пытался написать код, чтобы разрешить поле для отредактированного ответа, если указано «2», я столкнулся со многими ошибками вывода.