辞書から次の 2 つ (またはそれ以上) の JSON 文字列を扱っているとします。
JSONdict['context'] = '{"Context":"{context}","PID":"{PID}"}'
JSONdict['RDFchildren'] = '{"results":[ {"object" : "info:fedora/book:fullbook"} ,{"object" : "info:fedora/book:images"} ,{"object" : "info:fedora/book:HTML"} ,{"オブジェクト" : "info:fedora/book:altoXML"} ,{"オブジェクト" : "info:fedora/book:thumbs"} ,{"オブジェクト" : " info:fedora/book:originals"} ]}'
「コンテキスト」と「クエリ」をルート レベル キーとして、結合された JSON 文字列を作成したいと考えています。このようなもの:
{"context": {"PID": "wayne:campbellamericansalvage", "Context": "object_page"}, "RDFchildren": {"results": [{"object": "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:originals"}]}}
eval()
以下は動作しますが、できれば使用を避けたいです。
# using eval
JSONevaluated = {}
for each in JSONdict:
JSONevaluated[each] = eval(JSONdict[each])
JSONpackage = json.dumps(JSONevaluated)
この方法でも機能しますが、ハックのように感じます。より現実的なメタデータが通過するにつれて、エンコードとエスケープが問題になるのではないかと心配しています。
#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
何かご意見は?アドバイス?