는 JSON 파이썬 정말 아니다, 당신을 문자 형식을 객체 직접 파싱 할 필요가 있습니다. 사전에 허용되는 키와 값이 무엇인지 명시하지 않았으므로 다음은 영숫자 문자열 만 허용합니다.
그래서라는 다음 내용 doc.txt
와 입력 파일 주어진다 :
{key1: value1
key2: value2
key3: value3
}
{key4: value4
key5: value5
}
다음 읽고 숫자 키와 값 이루어지는 사전 파이썬리스트로 변환 :
from pprint import pprint
import re
dictpat = r'\{((?:\s*\w+\s*:\s*\w+\s*)+)\}' # note non-capturing (?:) inner group
itempat = r'(\s*(\w+)\s*:\s*(\w+)\s*)' # which is captured in this expr
with open('doc.txt') as f:
lod = [{group[1]:group[2] for group in re.findall(itempat, items)}
for items in re.findall(dictpat, f.read())]
pprint(lod)
출력 :
[{'key1': 'value1', 'key2': 'value2', 'key3': 'value3'},
{'key4': 'value4', 'key5': 'value5'}]
어떤 오류가 발생합니까? – Mhmd