gpt4 book ai didi

Python 与 R 的 fromJSON()、unlist()、attr() 等价的函数?

转载 作者:行者123 更新时间:2023-12-05 07:17:18 26 4
gpt4 key购买 nike

我用 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 代码:名称列表,其中属性的名称包含“组合”。可以显示属性在哪个级别。

例如,第 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 中执行这些操作的任何想法,那将解决我的大问题!

非常感谢!

最佳答案

我的回答是片面的。我只解释了如何取消列表。

对于数字,我们会像下面这样取消列出:

取消列出号码
例如:

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

关于Python 与 R 的 fromJSON()、unlist()、attr() 等价的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58860797/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com