我用R语言编写了一个代码,但是它不能处理我的繁重文件,因此我改用了Python。但是我一直在寻找R的3个Python等效功能,但没有找到令人满意的结果。
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代码: 名称列表,其中包含“组成”的属性名称。可以显示该属性处于哪个级别。
例如,第2个嵌套级别的属性的名称为“ composition.type”,第4个嵌套级别的属性的名称为“ composition.composition.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进行这些操作的想法,那将解决我的大问题!
非常感谢!
答案 0 :(得分:0)
我的回答是偏偏。我只解释了如何取消列出。
对于数字,我们不会像下面这样取消列出:
不列出号码
例如:
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())