当前位置: 首页 > 知识库问答 >
问题:

在python中将json字符串转换为单个字典[重复]

东方飞捷
2023-03-14

将多个JSON字符串转换为字典

尝试转换为以下格式

{"_id":[0,1....9],"name":["aimee Zank","Aurelia Menendez"...."Sanda Ryba"],"scores":[] so on}
{"_id":0,"name":"aimee Zank","scores":[{"score":1.463179736705023,"type":"exam"},{"score":11.78273309957772,"type":"quiz"},{"score":35.8740349954354,"type":"homework"}]}
{"_id":1,"name":"Aurelia Menendez","scores":[{"score":60.06045071030959,"type":"exam"},{"score":52.79790691903873,"type":"quiz"},{"score":71.76133439165544,"type":"homework"}]}
{"_id":2,"name":"Corliss Zuk","scores":[{"score":67.03077096065002,"type":"exam"},{"score":6.301851677835235,"type":"quiz"},{"score":66.28344683278382,"type":"homework"}]}
{"_id":3,"name":"Bao Ziglar","scores":[{"score":71.64343899778332,"type":"exam"},{"score":24.80221293650313,"type":"quiz"},{"score":42.26147058804812,"type":"homework"}]}
{"_id":4,"name":"Zachary Langlais","scores":[{"score":78.68385091304332,"type":"exam"},{"score":90.2963101368042,"type":"quiz"},{"score":34.41620148042529,"type":"homework"}]}
{"_id":5,"name":"Wilburn Spiess","scores":[{"score":44.87186330181261,"type":"exam"},{"score":25.72395114668016,"type":"quiz"},{"score":63.42288310628662,"type":"homework"}]}
{"_id":6,"name":"Jenette Flanders","scores":[{"score":37.32285459166097,"type":"exam"},{"score":28.32634976913737,"type":"quiz"},{"score":81.57115318686338,"type":"homework"}]}
{"_id":7,"name":"Salena Olmos","scores":[{"score":90.37826509157176,"type":"exam"},{"score":42.48780666956811,"type":"quiz"},{"score":96.52986171633331,"type":"homework"}]}
{"_id":8,"name":"Daphne Zheng","scores":[{"score":22.13583712862635,"type":"exam"},{"score":14.63969941335069,"type":"quiz"},{"score":75.94123677556644,"type":"homework"}]}
{"_id":9,"name":"Sanda Ryba","scores":[{"score":97.00509953654694,"type":"exam"},{"score":97.80449632538915,"type":"quiz"},{"score":25.27368532432955,"type":"homework"}]}

转换为具有多个值的单键。请在此处添加工作代码,不要询问链接

如何在python中向字典键添加多个值?

共有1个答案

何琨
2023-03-14

试试这个,

import json

d = {}
with open('file1.txt') as f:
    for line in f:
        data = json.loads(line)
        for k, v in data.items():
            d.setdefault(k,[]).append(v)

也可以使用defaultdict定义值为list的空dict。

import json
from collections import defaultdict

d = defaultdict(list)
with open('file1.txt') as f:
    for line in f:
        data = json.loads(line)
        for k, v in data.items():
            d[k].append(v) 

输出:

print(d)

{'_id': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 'name': ['aimee Zank', 'Aurelia Menendez', 'Corliss Zuk', 'Bao Ziglar', 'Zachary Langlais', 'Wilburn Spiess', 'Jenette Flanders', 'Salena Olmos', 'Daphne Zheng', 'Sanda Ryba'], 'scores': [[{'score': 1.463179736705023, 'type': 'exam'}, {'score': 11.78273309957772, 'type': 'quiz'}, {'score': 35.8740349954354, 'type': 'homework'}], [{'score': 60.06045071030959, 'type': 'exam'}, {'score': 52.79790691903873, 'type': 'quiz'}, {'score': 71.76133439165544, 'type': 'homework'}], [{'score': 67.03077096065002, 'type': 'exam'}, {'score': 6.301851677835235, 'type': 'quiz'}, {'score': 66.28344683278382, 'type': 'homework'}], [{'score': 71.64343899778332, 'type': 'exam'}, {'score': 24.80221293650313, 'type': 'quiz'}, {'score': 42.26147058804812, 'type': 'homework'}], [{'score': 78.68385091304332, 'type': 'exam'}, {'score': 90.2963101368042, 'type': 'quiz'}, {'score': 34.41620148042529, 'type': 'homework'}], [{'score': 44.87186330181261, 'type': 'exam'}, {'score': 25.72395114668016, 'type': 'quiz'}, {'score': 63.42288310628662, 'type': 'homework'}], [{'score': 37.32285459166097, 'type': 'exam'}, {'score': 28.32634976913737, 'type': 'quiz'}, {'score': 81.57115318686338, 'type': 'homework'}], [{'score': 90.37826509157176, 'type': 'exam'}, {'score': 42.48780666956811, 'type': 'quiz'}, {'score': 96.52986171633331, 'type': 'homework'}], [{'score': 22.13583712862635, 'type': 'exam'}, {'score': 14.63969941335069, 'type': 'quiz'}, {'score': 75.94123677556644, 'type': 'homework'}], [{'score': 97.00509953654694, 'type': 'exam'}, {'score': 97.80449632538915, 'type': 'quiz'}, {'score': 25.27368532432955, 'type': 'homework'}]]}
 类似资料:
  • 本文向大家介绍python中将字典转换成其json字符串,包括了python中将字典转换成其json字符串的使用技巧和注意事项,需要的朋友参考一下 #这是Python中的一个字典 //这是javascript中的一个JSON对象 实际上JSON就是Python字典的字符串表示,但是字典作为一个复杂对象是无法直接转换成定义它的代码的字符串(不能传递所以需要将其转换成字符串先),Python有一个叫s

  • 问题内容: 我有unicode ,我希望它以字典格式。 我想要它的格式。 我试过了,但它返回的字符串不是字典。 谁能帮我? 问题答案: 您可以使用内置包: 帮助ast模块中的literal_eval函数: literal_eval(node_or_string) 安全地评估表达式节点或包含Python表达式的字符串。提供的字符串或节点只能由以下Python文字结构组成:字符串,数字,元组,列表,字

  • 问题内容: 我有以下字符串,这是一个字符串化的Python字典: 如何从上述字符串中获取Python字典? 问题答案: 好吧,你可以做 但是,如果字符串包含用户输入,则是个坏主意,因为表达式中可能包含一些随机的恶意函数。 因此,更安全的选择可能是: 来自http://docs.python.org/library/ast.html#ast.literal_eval: 提供的字符串或节点只能由以下P

  • 问题内容: 一开始我没有清楚地解释我的问题。在python中将json转换为字符串时,请尝试使用和。 我的问题是: 我的预期输出: 我的预期输出: 对我来说,不必再次将输出字符串更改为json(dict)。 这该怎么做? 问题答案: 不仅仅是从Python对象中生成一个 字符串 ,它还会在Type Conversion Table 之后始终生成一个 有效的 JSON字符串(假设对象内部的所有内容都

  • 问题内容: 我想在我的swift项目中做一个将String转换成Dictionary json格式的函数,但是出现一个错误: 无法转换表达式的类型(@lvalue NSData,options:IntegerLitralConvertible … 这是我的代码: 我在Objective-C中实现此功能: 问题答案: 警告:如果出于某种原因必须使用JSON字符串,这是将JSON字符串转换为字典的便捷

  • 问题内容: 我正在尝试传递JSON文件并将数据转换成字典。 到目前为止,这是我所做的: 我期望是一种类型,但是当我使用进行检查时,它实际上是作为一种类型出现的。 我想念什么?我需要将它作为字典,以便可以访问其中一个键。 问题答案: JSON是一个数组,其中包含单个对象,因此当您阅读JSON时,将获得一个列表,其中包含字典。您可以通过访问列表中的项目0来访问字典,如下所示: 现在,您可以按预期访问存