首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Python中的JSON合并,替换为eval()?

将Python中的JSON合并,替换为eval()?
EN

Stack Overflow用户
提问于 2013-08-29 14:29:04
回答 1查看 122关注 0票数 0

假设我正在处理字典中的以下两个(或更多) 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()

代码语言:javascript
复制
    # using eval
    JSONevaluated = {}
    for each in JSONdict:
        JSONevaluated[each] = eval(JSONdict[each])
    JSONpackage = json.dumps(JSONevaluated)

也是这样工作的,但是我觉得很麻烦,我担心编码和转义会随着更现实的元数据的出现而变得有问题:

代码语言:javascript
复制
    #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

有什么想法吗?建议?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-29 14:44:16

您可以在第一个示例中使用json.loads()而不是eval()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18513734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档