从json中提取一个值,并用作新字典中的键

sbdsn5lh  于 2023-01-14  发布在  其他
关注(0)|答案(1)|浏览(115)

我有一个Json文件,想从中提取一些信息到一个新的dict中。
json看起来像这样:

{
    "code": "C568219u",
    },
    "body_text": [
        {
            "text": "some text",
            "other_item": "3fd"
            }
            {
            "text": "more text"
            }
            ]
}

我想得到“代码”--这是问题所在--作为我的新法令中的键,文本作为值。
理想情况下,法令应该是这样的:

{C568219u:"all the text"}

为了提取文本,它是这样工作的:

with open("C:\\root\test.json", 'r') as content:
            try:
                temp = []
                json_file = json.load(content)
                for item in json_file["body_text"]:
                    temp.append(item["text"]) 
                    text = " ".join(f)
            except:
                print(":(")
  

print(text)

但是现在提取“代码”并将其设置为键,然后更新dict将无法处理我的代码。
目前为止看起来是这样的:

full_text= {}
with open("C:\\root\test.json", 'r') as content:
            try:
                json_file = json.load(content)
                temp = []
                if 'code' in content:
                    c_id = content['code']    
               
                    for item in json_file["body_text"]:
                        temp.append(item["text"])   
                        text = " ".join(temp)
                        full.update[c_id:text]
                    
            except:
                print(":(")

关于这个问题可能是什么以及如何达到我的目标有什么想法吗?

dgsult0t

dgsult0t1#

不确定这是否是理想的方法,但我将代码更改为:

full_text= {}
with open("C:\\root\test.json", 'r') as content:
            try:
                json_file = json.load(content)
                temp = []
                for item in json_file:
                    c_id = content['code']    
               
                    for item in json_file["body_text"]:
                        temp.append(item["text"])   
                        text = " ".join(temp)
                        almost = {c_id:text}
                        full.update(almost)
                    
            except:
                print(":(")

而且奏效了。
我还是不太理解json文件,但是这样它就按照我想要的方式出现了!耶!!

相关问题