Сложность создания аннотационного скрипта в python - PullRequest
0 голосов
/ 11 марта 2019

Я пытался создать инструмент аннотации в 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», я столкнулся со многими ошибками вывода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...