假设我正在处理字典中的以下两个(或更多) JSON字符串:
JSONdict'context‘={“context”:“{context}”,"PID":"{PID}"}’ JSONdict‘’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:原件“} }‘
我想要创建一个合并的JSON字符串,其中"context“和"query”作为根级键。就像这样:
{ "RDFchildren":{“RDFchildren”:{“对象”:“信息:fedora/book:fullbook”},{"object":“info:fedora/book:图像”},{"object":"info:fedora/book:HTML"},{"object":"info:fedora/book:altoXML"}{"object":"info:fedora/book:thumbs"},{"object":“info:fedora/book:原件”}}
下面的工作是可行的,但如果可能的话,我希望避免使用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有什么想法吗?建议?
发布于 2013-08-29 14:44:16
您可以在第一个示例中使用json.loads()而不是eval()。
https://stackoverflow.com/questions/18513734
复制相似问题