我用R编写了一个代码,但它不能接受我的大量文件,所以我切换到Python。但我一直在寻找3 Python的等价函数R,但没有找到任何令人满意的结果。
3项R职能是:
fromJSON()
unlist()
attr()好的,让我向你们展示我的问题,我向你们展示我在R中做了什么,我得到了什么,现在我想用Python做同样的事情。
json_file <- '[
{
"id": "haha",
"type": "table",
"A": "HKD",
"B": "HKD",
"C": "HKD",
"V": "HKD",
"composition": [
{
"id": "AO",
"type": "panier"
},
{
"id": "KK",
"type": "basket",
"isAutoDiv": false,
"composition": [
{
"id": "600",
"type": "apple",
"number": 1.11
},
{
"id": "605",
"type": "peach",
"number": 1.79
}
]
},
{
"id": "KL",
"type": "basket"
}
]
},
{
"id": "hoho",
"type": "table",
"composition": [
{
"id": "KT",
"type": "panier"
},
{
"id": "OT",
"type": "panier"
},
{
"id": "CL",
"type": "basket",
"isAutoDiv": false,
"composition": [
{
"id": "450",
"type": "apple"
},
{
"id": "630",
"type": "orange"
},
{
"id": "023",
"type": "orange",
"composition": [
{
"id": "AOOOOOOO",
"type": "orangejuice"
},
{
"id": "VMVMVMVMV",
"type": "orangejuice"
}
]
}
]
}
]
}
]'现在我这样做: 1:
nestedjson <- fromJSON(json_file)我可以得到:
[[1]]
[[1]]$id
[1] "haha"
[[1]]$type
[1] "table"
[[1]]$A
[1] "HKD"
[[1]]$B
[1] "HKD"
[[1]]$C
[1] "HKD"
[[1]]$V
[1] "HKD"
[[1]]$composition
[[1]]$composition[[1]]
[[1]]$composition[[1]]$id
[1] "AO"
[[1]]$composition[[1]]$type
[1] "panier"
[[1]]$composition[[2]]
[[1]]$composition[[2]]$id
[1] "KK"
[[1]]$composition[[2]]$type
[1] "basket"
[[1]]$composition[[2]]$isAutoDiv
[1] FALSE
[[1]]$composition[[2]]$composition
[[1]]$composition[[2]]$composition[[1]]
[[1]]$composition[[2]]$composition[[1]]$id
[1] "600"
[[1]]$composition[[2]]$composition[[1]]$type
[1] "apple"
[[1]]$composition[[2]]$composition[[1]]$number
[1] 1.11
[[1]]$composition[[2]]$composition[[2]]
[[1]]$composition[[2]]$composition[[2]]$id
[1] "605"
[[1]]$composition[[2]]$composition[[2]]$type
[1] "peach"
[[1]]$composition[[2]]$composition[[2]]$number
[1] 1.79
[[1]]$composition[[3]]
[[1]]$composition[[3]]$id
[1] "KL"
[[1]]$composition[[3]]$type
[1] "basket"
[[2]]
[[2]]$id
[1] "hoho"
[[2]]$type
[1] "table"
[[2]]$composition
[[2]]$composition[[1]]
[[2]]$composition[[1]]$id
[1] "KT"
[[2]]$composition[[1]]$type
[1] "panier"
[[2]]$composition[[2]]
[[2]]$composition[[2]]$id
[1] "OT"
[[2]]$composition[[2]]$type
[1] "panier"
[[2]]$composition[[3]]
[[2]]$composition[[3]]$id
[1] "CL"
[[2]]$composition[[3]]$type
[1] "basket"
[[2]]$composition[[3]]$isAutoDiv
[1] FALSE
[[2]]$composition[[3]]$composition
[[2]]$composition[[3]]$composition[[1]]
[[2]]$composition[[3]]$composition[[1]]$id
[1] "450"
[[2]]$composition[[3]]$composition[[1]]$type
[1] "apple"
[[2]]$composition[[3]]$composition[[2]]
[[2]]$composition[[3]]$composition[[2]]$id
[1] "630"
[[2]]$composition[[3]]$composition[[2]]$type
[1] "orange"
[[2]]$composition[[3]]$composition[[3]]
[[2]]$composition[[3]]$composition[[3]]$id
[1] "023"
[[2]]$composition[[3]]$composition[[3]]$type
[1] "orange"
[[2]]$composition[[3]]$composition[[3]]$composition
[[2]]$composition[[3]]$composition[[3]]$composition[[1]]
[[2]]$composition[[3]]$composition[[3]]$composition[[1]]$id
[1] "AOOOOOOO"
[[2]]$composition[[3]]$composition[[3]]$composition[[1]]$type
[1] "orangejuice"
[[2]]$composition[[3]]$composition[[3]]$composition[[2]]
[[2]]$composition[[3]]$composition[[3]]$composition[[2]]$id
[1] "VMVMVMVMV"
[[2]]$composition[[3]]$composition[[3]]$composition[[2]]$type
[1] "orangejuice"然后我做这个2:
unnestedjson <- unlist(nestedjson) 我可以得到:
id
"haha"
type
"table"
A
"HKD"
B
"HKD"
C
"HKD"
V
"HKD"
composition.id
"AO"
composition.type
"panier"
composition.id
"KK"
composition.type
"basket"
composition.isAutoDiv
"FALSE"
composition.composition.id
"600"
composition.composition.type
"apple"
composition.composition.number
"1.11"
composition.composition.id
"605"
composition.composition.type
"peach"
composition.composition.number
"1.79"
composition.id
"KL"
composition.type
"basket"
id
"hoho"
type
"table"
composition.id
"KT"
composition.type
"panier"
composition.id
"OT"
composition.type
"panier"
composition.id
"CL"
composition.type
"basket"
composition.isAutoDiv
"FALSE"
composition.composition.id
"450"
composition.composition.type
"apple"
composition.composition.id
"630"
composition.composition.type
"orange"
composition.composition.id
"023"
composition.composition.type
"orange"
composition.composition.composition.id
"AOOOOOOO"
composition.composition.composition.type
"orangejuice"
composition.composition.composition.id
"VMVMVMVMV"
composition.composition.composition.type
"orangejuice" 最后,我这样做3:
unnestednames <- attr(unnestedjson, "names") 我可以得到下面的结果:这就是我想从Python代码中得到的结果:一个名称列表,其中包含“组合”的属性的名称。可以显示属性在哪个级别上是.。
例如,第二个嵌套级别的属性名为"composition.type",第四个嵌套级别的属性名为“composition.id”。
[1] "id"
[2] "type"
[3] "A"
[4] "B"
[5] "C"
[6] "V"
[7] "composition.id"
[8] "composition.type"
[9] "composition.id"
[10] "composition.type"
[11] "composition.isAutoDiv"
[12] "composition.composition.id"
[13] "composition.composition.type"
[14] "composition.composition.number"
[15] "composition.composition.id"
[16] "composition.composition.type"
[17] "composition.composition.number"
[18] "composition.id"
[19] "composition.type"
[20] "id"
[21] "type"
[22] "composition.id"
[23] "composition.type"
[24] "composition.id"
[25] "composition.type"
[26] "composition.id"
[27] "composition.type"
[28] "composition.isAutoDiv"
[29] "composition.composition.id"
[30] "composition.composition.type"
[31] "composition.composition.id"
[32] "composition.composition.type"
[33] "composition.composition.id"
[34] "composition.composition.type"
[35] "composition.composition.composition.id"
[36] "composition.composition.composition.type"
[37] "composition.composition.composition.id"
[38] "composition.composition.composition.type"我一直在寻找一些Python函数,它们可以执行相同的任务,但是没有找到任何东西。如果你想用Python来做这些事情,那就解决了我的大问题!
非常感谢!
发布于 2020-05-08 03:46:44
我的答案是帕蒂尔。我只解释了如何取消名单。
对于我们要删除的数字,如下所示:
取消列表号码
例如:
aa = [1,2,3,4]
for i in aa:
print(i, end="" ) 对于字符串,我们需要取消列表,比如bleow:
c=["a", "ja", "ra", "ya", "ma"]
ab= ",". join(c)
print(ab)使用Pd.series取消列表的其他方法
例:
vector = [1,2,3,4,5]
print(pd.Series(vector)) 同样,想要转换为列表:
square_vector = pd.Series(vector)
print(square_vector.tolist())https://stackoverflow.com/questions/58860797
复制相似问题