【问题标题】:Python: Remove List/Array tag from json ObjectPython:从 json 对象中删除列表/数组标签
【发布时间】:2015-12-18 13:19:04
【问题描述】:

我有类似的对象

{'a':['','','sample']}

我已经删除了每个空白值

{'a':['sample']}

现在的问题是我不想要数组的一个值,那么如何删除数组

结果应该是

{'a':'sample'}    

【问题讨论】:

    标签: python json list


    【解决方案1】:

    假设你有a={'a':['sample']} 并且你想摆脱这个数组。假设您确定所有值都是数组。让我们开始吧!

    if len(a['a']) == 1:
        a = {'a': a['a'][0]}
    

    在这里,您首先使用a['a'] 提取数组本身,然后处理它的第一个成员。

    这是它在 Python 解释器中的样子。

    >>> a={'a':['sample']}
    >>> a
    {'a': ['sample']}
    >>> a={'a':a['a'][0]}
    >>> a
    {'a': 'sample'}
    

    【讨论】:

      【解决方案2】:

      使用for loop and iterating dictionary values

      代码:

      sam = {'a':['sample'],'b':[1,2,3]}
      for key, value in sam.items():
          if isinstance(value,list) and len(value) == 1:
              sam[key] = value[0]
      print sam 
      

      输出:

      {'a': 'sample', 'b': [1, 2, 3]}
      

      注意事项:

      • 程序正在迭代 key, value 元组
      • 对于每个值,我们检查它是否为list and length is equal to 1
      • 如果是这样,我们将获得第一个元素

      【讨论】:

        【解决方案3】:
        def reduce(arr):
            out = [ i for i in arr if i ]
            return out[0] if len(out) == 1 else out
        obj = {'a':['','','sample']}
        obj = {k: reduce(val) for k, val in obj.iteritems()}
        

        【讨论】:

          【解决方案4】:
          mydict = {'a':['','','sample'], 'b':['','','table']}
          
          str = ""
          
          for key, value in mydict.items():
          
              for i in value:
                  str += ''.join(i)
          
              value = ''.join(str)
          
              str = ""
          
              mydict[key] = value
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-06-29
            • 1970-01-01
            • 1970-01-01
            • 2021-12-13
            • 2016-03-01
            • 1970-01-01
            相关资源
            最近更新 更多