사전 목록에서 일부 데이터를 얻으려고합니다. 데이터는 csv 파일에서 가져 오므로 모두 문자열입니다. 파일의 키에는 모두 이중 큐 아웃이 있지만, 모두 문자열이므로 사전에서 다음과 같이 보이도록 제거하고 싶습니다.
{'key':value}
이 대신
{'"key"':value}
나는 단순히 string = string [1 : -1]을 사용해 보았지만 이것은 작동하지 않는다 ...
내 코드는 다음과 같습니다.
csvDelimiter = ","
tsvDelimiter = "\t"
dataOutput = []
dataFile = open("browser-ww-monthly-201305-201405.csv","r")
for line in dataFile:
line = line[:-1] # Removes \n after every line
data = line.split(csvDelimiter)
for i in data:
if type(i) == str: # Doesn't work, I also tried if isinstance(i, str)
# but that didn't work either.
print i
i = i[1:-1]
print i
dataOutput.append({data[0] : data[1]})
dataFile.close()
print "Data output:\n"
print dataOutput
내가 print i에서 얻은 모든 인쇄물은 큰 따옴표없이 좋지만 dataOutput에 데이터를 추가하면 따옴표가 돌아옵니다!
영원히 사라지게하는 방법을 아십니까?
주석에서 언급했듯이 CSV 파일을 다룰 때는 Python에 내장 된 csv 모듈 을 사용해야 합니다 (사용중인 것으로 보이므로 Python 2 문서에 연결).
주목해야 할 또 다른 사항은 다음과 같은 경우입니다.
data = line.split(csvDelimiter)
반환 된 목록의 모든 항목이 비어 있지 않으면 문자열이됩니다. 루프에서 유형 검사를 수행하는 것은 의미가 없습니다 (사용할 이유가 있다면 isinstance
). 유니 코드 문자열을 사용하고 있었을 가능성이 있지만 "작동하지 않은"것이 무엇인지 모르겠습니다. Python 2 isinstance(..., basestring)
에서는 일반적으로 where basestring
is a base class for both str
and unicode
. Python 3 str
에서는 bytes
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다