【问题标题】:Remove all elements of a string list in python if they contain a given phrase如果它们包含给定的短语,则删除python中字符串列表的所有元素
【发布时间】:2020-06-23 18:23:24
【问题描述】:

有一个名为 summary 的列表,其中包含一个对应的 JSON 对象,类似于:

{
   # summary[0]
   "object1": {
      "json_data": "{json data information}",
      "tables_data": "TABLES_DATA"
   },

   # summary[1]
   "object2": {
      "json_data": "{json data information}",
      "tables_data": ""
   }
}

基本上,如果在列表项的字符串中找到"tables_data": "",我希望删除整个列表项。

我该怎么做呢?

【问题讨论】:

    标签: python json string list object


    【解决方案1】:

    您可以选择字典项,其中'tables_data' 的值不等于''

    summary = [{
       # summary[0]
       "object1": {
          "json_data": "{json data information}",
          "tables_data": "TABLES_DATA"
       },
    
       # summary[1]
       "object2": {
          "json_data": "{json data information}",
          "tables_data": ""
       }
    }]
    result = [{k: d for k, d in s.items() if d.get('tables_data') != ''} for s in summary]
    # [{'object1': {'json_data': '{json data information}', 'tables_data': 'TABLES_DATA'}}]
    

    【讨论】:

    • 我没有字典也没有列表,所以我的对象没有items 属性
    • 使用:results = [{k: d for k, d in summary[0].items() if d.get('tables_data') != ''}]
    • 试过了,看起来只有我的第一个对象保留在 JSON 文件中
    • 请编辑您的问题以包含 json 的确切视图。看起来你想迭代列表,但让我们看看。
    • 这基本上就是我在帖子上的内容。整个文件包含太多信息,无法包含
    猜你喜欢
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 2018-05-05
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    相关资源
    最近更新 更多