下方的json
data = [{"id":1,"name":"a"},{"id":2,"name":"b"},{"id":3,"name":"c"}]
我有一个很大的json,我正在通过一个函数从中提取id
我的第二个函数将提取元素的数量
#extract the id from the json
total = []
def id_extract(data):
for i in data:
j = {"id" : i["id"]}
total.append(j)
return total
#extract length from the json
def length_(data):
return(len(data))
我当前的输出是[{"id":1},{"id":2},{"id":3}]
预期为 [{'count':3}{"id":1},{"id":2},{"id":3}]
NB:这个问题主要是要注意将一个功能传递给另一功能
答案 0 :(得分:3)
您想要类似的东西吗?
#extract the id from the json
def id_extract(data):
return [{"id" : e["id"]} for e in data]
#extract length from the json
def add_length(data):
data.insert(0, {"count" : len(data)}) # insert the element at the first position
data = [{"id":1,"name":"a"},{"id":2,"name":"b"},{"id":3,"name":"c"}]
d = id_extract(data)
print(d) # OUTPUT : [{'id': 1}, {'id': 2}, {'id': 3}]
add_length(d)
print(d) # OUTPUT : [{'id': 1}, {'id': 2}, {'id': 3}, {'count': 3}]
列表是mutable,所以我不需要在add_length
函数中返回列表。
答案 1 :(得分:2)
像这样?不需要返回列表,因为它是可变的,有一些更好的方法可以编写此表,但是就调用另一个函数而言,通常可以只调用它。
def id_extract(data):
cur_count = {"count": length(data)}
total.append(cur_count)
for i in data:
j = {"id": i["id"]}
total.append(j)
# extract length from the json
def length(data):
return(len(data))