I는 사전에서 다음의 두 (또는 그 이상) JSON 문자열 다루는 야한다고 가정Python에서 JSON을 병합하면 eval()을 대체합니까?
JSONdict [ '콘텍스트'] = "{"컨텍스트 ":"{문맥} ","PID " "{PID}"} '
JSONdict ['RDFchildren '] ='{ "결과": [{ "개체" "정보 : 페도라/책 : fullbook"}, { "개체" "정보 : fedora/book : altoXML "}, {"object ": "정보 : fedora/book : HTML "}, {"object ": "info : info : fedora/book : thumbs "}, {"object ": "info : fedora/book : 원본 "}]} ''
"context"와 "query"를 루트 레벨 키로 사용하여 병합 된 JSON 문자열을 만들고 싶습니다. 이런 식으로 뭔가 :
{ "컨텍스트": { "PID": "웨인 : campbellamericansalvage", "컨텍스트" "object_page"}, "RDFchildren": { "결과": [{ "개체" : "info : fedora/book : fullbook"}, { "object": "info : fedora/book : images"}, { "object": "info : fedora/book : HTML"}, { "object ": "info : fedora/book : altoXML "}, {"object ": "info : fedora/book : thumbs "}, {"object ": "info : fedora/book : originalals "}]}}
다음 작품들,하지만 나는 피하고 싶습니다. 가능하면 eval()
.
# using eval
JSONevaluated = {}
for each in JSONdict:
JSONevaluated[each] = eval(JSONdict[each])
JSONpackage = json.dumps(JSONevaluated)
또한 이런 식으로 작업을 가지고 있지만 hackish 느낌이 나는 통해 오는 두려워 인코딩 및 이스케이프 더 사실적인 메타 데이터 등의 문제가 될 것이다 해요 :
#iterate through dictionary, unpack strings and concatenate
concatList = []
for key in JSONdict:
tempstring = JSONdict[key][1:-1] #removes brackets
concatList.append(tempstring)
JSONpackage = ",".join(concatList) #comma delimits
JSONpackage = "{"+JSONpackage+"}" #adds brackets for well-formed JSON
어떤 생각? 조언?
굉장합니다. 감사합니다, 매력처럼 작동합니다. – ghukill