0. 탭 구분자를 tabulator로 표시하는 파일

Javascript를 사용하여 테이블을 만드는 Tabulator 도구


브라우저에 격자 표시tabulator를 하는 게 좋을 것 같아서 한번 활용해 볼게요.
json 형식의 데이터를 읽고 표시하고 싶습니다
테이블의 원본 데이터로 RefSeqLRG_RefSeqGene 사용

탭 구분자 데이터에서 json으로 변환


tabulator로 json 형식의 데이터를 읽기 때문에 LRGRefSeqGene을 json으로 변환해야 합니다.
마땅한 물건을 찾지 못해서python으로 처리합니다
  • convert_csv_to_json (filename = 읽기 대상의 파일 이름, delimiter = 구분자, maximum lines = 변환된 줄 수, out file = 출력 대상의 파일 이름)
  • csv 모듈의 DictReader를 사용하여 태그 구분자 데이터 읽기
  • 행두의 칼럼인'#'이 칼럼명에 들어갔기 때문에 DictReader.직접 편집fieldnames[0]
  • 변환할 줄 수 지정: maximumlines
  • json의 텍스트에 유일한 id 추가
  • 태그 외부에서 구분자 문자를 지정할 수 있습니다.
  • create_json.py
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    from __future__ import print_function
    import json
    import csv
    __author__ = 'percipere'
    __date__ = '2017/12/13'
    __date_of_last_modification__ = ''
    # Read data file and create JSON object
    def convert_csv_to_json(filename='./LRG_RefSeqGene', delimiter='\t', maximum_lines=100, out_file="./output.json"):
        """
        Read csv file and convert it to json file.
        The first line of the csv should be delimiter separated column names.
        :param filename: file name of the CSV
        :param delimiter:
        :param maximum_lines: 0 means all lines
        """
        data_list = []
        with open(filename, 'r') as file_handle:
            reader = csv.DictReader(file_handle, delimiter=delimiter)
            reader.fieldnames[0] = reader.fieldnames[0][1:] if reader.fieldnames[0].startswith('#') else reader.fieldnames[
                0]
            for row_id, row in enumerate(reader, start=1):
                row.update({"id": row_id})
                data_list.append(row)
                if maximum_lines and row_id >= maximum_lines:
                    break
        with open(out_file, 'w') as write_handle:
            json.dump(data_list, write_handle)
    
    if __name__ == "__main__":
        convert_csv_to_json()
    
    data_list에 id의 dictionary를 추가했습니다. 마지막으로 json입니다.dump로 시작하기
    $ python3 ./create_json.py 
    
    입력 파일의 처음 4 행
    LRG_RefSeqGene
    #tax_id GeneID  Symbol  RSG LRG RNA t   Protein p   Category
    9606    29974   A1CF    NG_029916.1     NM_001198819.1      NP_001185748.1      reference standard
    9606    29974   A1CF    NG_029916.1     NM_014576.3     NP_055391.2     aligned: Selected
    9606    29974   A1CF    NG_029916.1     NM_138932.2     NP_620310.1     aligned: Selected
    9606    29974   A1CF    NG_029916.1     NM_138933.2     NP_620311.1     aligned: Selected
    
    출력 파일의 처음 4개의 항목을 신중하게 보기 위해 줄 끝에 추가하십시오]
    output.json
    [{"tax_id": "9606", "GeneID": "29974", "Symbol": "A1CF", "RSG": "NG_029916.1", "LRG": "", "RNA": "NM_001198819.1", "t": "", "Protein": "NP_001185748.1", "p": "", "Category": "reference standard", "id": 1}, {"tax_id": "9606", "GeneID": "29974", "Symbol": "A1CF", "RSG": "NG_029916.1", "LRG": "", "RNA": "NM_014576.3", "t": "", "Protein": "NP_055391.2", "p": "", "Category": "aligned: Selected", "id": 2}, {"tax_id": "9606", "GeneID": "29974", "Symbol": "A1CF", "RSG": "NG_029916.1", "LRG": "", "RNA": "NM_138932.2", "t": "", "Protein": "NP_620310.1", "p": "", "Category": "aligned: Selected", "id": 3}, {"tax_id": "9606", "GeneID": "29974", "Symbol": "A1CF", "RSG": "NG_029916.1", "LRG": "", "RNA": "NM_138933.2", "t": "", "Protein": "NP_620311.1", "p": "", "Category": "aligned: Selected", "id": 4},]
    
    이렇게 하면 원시 데이터를 만들 수 있다
    이번엔 여기까지

    좋은 웹페이지 즐겨찾기