My question is very similar to this one, except I have a dictionary of lists and I'm interested in changing both the key value and all elements in every list form string to int.

So for instance I'd like the dictionary:

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

to become:

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

Is this possible?

更一般的情况,因为我是从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()

is there a way to do it directly at loading time?

推荐答案

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}

for lists in values

>>> 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()}

in your case:

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

or

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

Json相关问答推荐

JOLT拉平数组

Jolt转换问题—使用键查找匹配对象

为什么terraform不缩小这个策略JSON?'

Jolt将键和值转换为单独的数组集

Jolt需要将缺少的值设置为空并保持相同的位置

在Golang中从 struct 手动创建JSON对象

Vega-Lite(Deneb):难以将最小和最大值应用于折线图和文本标签以及线条末尾的点

使用json_query更新事实

使用JQ在数组中 Select 第一个具有匹配项的项

使用 Power BI 中的 Deneb 视觉效果绘制面积图中的 X 轴日期

如何编写 jolt 规范以将不同的对象转换为数组

判断golang中解析的json响应中是否存在所需的json键(不是值)

使用 jq 获取特定键的所有父键

TSQL FOR JSON 嵌套值

在 json 嵌入的 YAML 文件中 - 使用 Python 仅替换 json 值

SyntaxError:Object.parse(本机)AngularJS中的意外标记o

将带有数据和文件的 JSON 发布到 Web Api - jQuery / MVC

使用 gson 反序列化对象的特定 JSON 字段

android - 在 adb logcat 输出中格式化 json 字符串

在 Java 中比较两个 JSON 文件的最佳方法