2014-02-27 3 views
2

이것은 특히 파이썬에서 데이터 저장 및 로딩에 관한 질문입니다. 나는 이것이 적절한 포럼이라는 것을 완전히 확신하지 못한다. 그래서 그렇지 않다면 나를 방향을 바꾼다.파일과 관련된 메타 데이터를 저장할 위치는 어디입니까?

약 50 개의 1000 행 CSV 파일을 처리 중이며 각각 관련 메타 데이터 매개 변수가 10 개 있습니다.

(A) 모든 정보는 사람이 읽을 수있는 일반 텍스트이며 비 프로그래밍 인간이 데이터와 메타 데이터를 쉽게 연관시킬 수 있습니다. (B) csv의 메타 데이터와 각 열을 파이썬 사전에로드하는 것이 편리합니다. 파일 이름에 메타 데이터의

(0) 이전에, 내가 저장 한 적은 양 :

나는 네 가지 솔루션을 고려했습니다. 이것은 명백한 이유 때문에 나쁘다.

(1) 각 CSV 파일에 ID 번호를 할당하고 각 "ID.csv"의 이름을 지정한 다음 각 CSV ID 번호를 해당 메타 데이터에 매핑하는 "metadata.csv"를 생성하십시오. 여기서 단점은 ID 번호를 사용하면 사람의 가독성이 떨어집니다. (파일 내용을 배우려면 프로그래밍하지 않은 사람이 직접 "metadata.csv"를 확인해야합니다.)

(2) 메타 데이터는 CSV 파일의 맨 위에 둡니다. 이것은 내 프로그램이 다음 두 단계를 수행해야한다는 단점이 있습니다. (a) 파일의 맨 위에있는 임의의 수의 행에서 메타 데이터 가져 오기 (b) CSV 판독기 (pandas.read_csv)에게 처음 몇 줄 무시하도록 알려줍니다. .

(3) YAML과 같은 일부 데이터 직렬화 형식으로 CSV로 변환합니다. 여기서 메타 데이터를 쉽게 포함 할 수 있습니다. 여기에는 CSV 열을 사전에 쉽게로드 할 수있는 단점이 있으며 모든 사용자가 YAML을 아는 것은 아닙니다.

이 문제에 대한 현명한 해결책이 있습니까? 감사!

+0

"스택 오버플로"에서이 질문을하는 것이 좋습니다. – BurninLeo

답변

1

이 질문은 암시적인 질문이므로 닫아도되지만 python module for handling json files의 제안을 제안 해 드리겠습니다. JSON은 "사람의 가독성"의 균형을 유지하며 거의 모든 언어 또는 형식으로 이식 가능한 입니다. 당신은 이런 식으로 원본 데이터에서 구성 할 수 있습니다 :

데이터가 원래 CSV 파일 및 메타 데이터입니다
{ 
    "metadata":{"name":"foo", "status":"bar"}, 
    "data":[[1,2,3],[4,5,6],[....]] 
} 

당신이 가게를하려는 어떤 데이터가 포함 된 사전이다. 또한 메타 데이터를 "제거"하고이 형식에서 원래의 csv 데이터를 반환하는 것도 간단합니다. 모두 내장 된 파이썬 모듈의 범위 내에 있습니다.

관련 문제