首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python的等效函数是fromJSON()、unlist()、attr() of R?

Python的等效函数是fromJSON()、unlist()、attr() of R?
EN

Stack Overflow用户
提问于 2019-11-14 15:51:39
回答 1查看 1K关注 0票数 3

我用R编写了一个代码,但它不能接受我的大量文件,所以我切换到Python。但我一直在寻找3 Python的等价函数R,但没有找到任何令人满意的结果。

3项R职能是:

代码语言:javascript
复制
fromJSON()
unlist()
attr()

好的,让我向你们展示我的问题,我向你们展示我在R中做了什么,我得到了什么,现在我想用Python做同样的事情。

代码语言:javascript
复制
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:

代码语言:javascript
复制
nestedjson <- fromJSON(json_file)

我可以得到:

代码语言:javascript
复制
[[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:

代码语言:javascript
复制
unnestedjson <- unlist(nestedjson) 

我可以得到:

代码语言:javascript
复制
   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:

代码语言:javascript
复制
unnestednames <- attr(unnestedjson, "names") 

我可以得到下面的结果:这就是我想从Python代码中得到的结果:一个名称列表,其中包含“组合”的属性的名称。可以显示属性在哪个级别上是.

例如,第二个嵌套级别的属性名为"composition.type",第四个嵌套级别的属性名为“composition.id”。

代码语言:javascript
复制
[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来做这些事情,那就解决了我的大问题!

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2020-05-08 03:46:44

我的答案是帕蒂尔。我只解释了如何取消名单。

对于我们要删除的数字,如下所示:

取消列表号码

例如:

代码语言:javascript
复制
aa = [1,2,3,4]  


for i in aa:  
    print(i, end="" )  

对于字符串,我们需要取消列表,比如bleow:

代码语言:javascript
复制
c=["a", "ja", "ra", "ya", "ma"]  
ab= ",". join(c)   
print(ab)

使用Pd.series取消列表的其他方法

例:

代码语言:javascript
复制
vector = [1,2,3,4,5]  
print(pd.Series(vector))  

同样,想要转换为列表:

代码语言:javascript
复制
square_vector = pd.Series(vector)   
print(square_vector.tolist())
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58860797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档