当前位置: 首页 > 面试题库 >

在字典中将字符串键转换为int

夏博
2023-03-14
问题内容

我的问题与这一问题非常相似,除了我有一个列表字典,而且我有兴趣将键值和每个列表形式中的所有元素都更改stringint

因此,例如,我想要字典:

{ '1':['1', '2', '3', '4'] , '2':['1', '4'] , '3':['43','176'] }

成为:

{ 1:[1, 2, 3, 4] , 2:[1, 4] , 3:[43,176] }

这可能吗?

由于我是从JSON格式文件创建此字典的,因此更一般

{"0": ["1", "2", "3", "4"], "1": ["0", "2", "3", "4", "27", "94",
"95", "97", "128", "217", "218", "317"], "2": ["0", "1", "3", "4",
"94", "95"], "3": ["0", "1", "2", "4", "377"], "4": ["0", "1", "2",
"3", "27", "28"], "5": ["6", "7", "8"], "6": ["5", "7", "8"], "7":
["5", "6", "8", "14", "23", "40", "74", "75", "76", "362", "371",
"372"], "8": ["5", "6", "7", "66"], "9": ["10", "11", "12"], "10":
["9", "11", "12", "56", "130", "131"]}

具有以下说明:

json_data = open("coauthorshipGraph.txt")
coautorshipDictionary = json.load( json_data )
json_data.close()

有没有一种方法可以在加载时直接进行?


问题答案:
d = {'1':'145' , '2':'254' , '3':'43'}
d = {int(k):int(v) for k,v in d.items()}
>>> d
{1: 145, 2: 254, 3: 43}

用于值列表

>>> d = { '1':['1', '2', '3', '4'] , '2':['1', '4'] , '3':['43','176'] }
>>> d = {int(k):[int(i) for i in v] for k,v in d.items()}

在您的情况下:

coautorshipDictionary = {int(k):int(v) for k,v in json.load(json_data)}

要么

coautorshipDictionary = {
    int(k):[int(i) for i in v] for k,v in json.load(json_data)}


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

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

  • 问题内容: 我有一个清单 我想将其转换为字典 我该怎么做? 问题答案: 采用: 返回: 如果需要整数,请在以下位置更改分配: 这将给出:

  • 问题内容: 我有一个字符串,该字符串基本上包含一堆JSON格式的文本,最终我希望将其以“漂亮打印”格式导出到Excel,并带有适当的缩进嵌套等。 出于可读性考虑,必须保留键/值的原始顺序。我想实现自己想要的目标的过程是 a)使用类似eval的方法将字符串转换为字典,b)使用collections库中的OrderedDict保持顺序完整。 但是我没有得到预期的结果: 我也还没有弄清楚如何将输出以漂亮

  • 问题内容: 我发现运行以下命令时,python的json模块(自2.6起包含)将int字典键转换为字符串。 有什么简单的方法可以将键保留为int,而无需在转储和加载时解析字符串。我相信可以使用json模块提供的钩子,但这仍然需要解析。我可能会忽略一个论点吗?欢呼声,查兹 子问题:感谢您的回答。看到j​​son像我所担心的那样工作,是否有一种简单的方法可以通过解析转储的输出来传达密钥类型?我还要注意

  • 问题内容: 我有一个程序可以从套接字读取xml文档。我将xml文档存储在一个字符串中,我想将其直接转换为Python字典,就像在Django的库中一样。 举个例子: 然后看起来像 问题答案: 这是某人创建的一个很棒的模块。我已经使用过几次了。 http://code.activestate.com/recipes/410469-xml-as- dictionary/ 这是网站上的代码,以防万一链接