【问题标题】:How to convert dictionary object into string in python 3如何在python 3中将字典对象转换为字符串
【发布时间】:2023-04-01 22:08:01
【问题描述】:

我有嵌套的字典,我需要把这个字典串起来

字典示例

data = {
  'filter': {
      'operator': "and",
      'filters': [{
          'operator': "or",
          'filters': [{
              'operator': "and",
              'filters': [{
                  'value': "blue"
              }, {
                  'value': "green"
              }]
          }, {
              'operator': "and",
              'filters': [{
                  'value': "brown"
              }, {
                  'value': "green"
              }]
          }, {
              'value': "green"
          }]
      }, {
          'value': "red"
      }]
    }
}

我使用递归函数来获取“过滤器”键,但我需要检测括号级别

def recursively(dct, field):

    if field in dct:
        yield dct[field]
    for k in dct:
        if isinstance(dct[k], list):
            for i in dct[k]:
                for j in recursively(i, field):
                    yield j

最后我需要字符串输出

>>> recursivaly(data['filter'], 'filters')
# result
((blue AND green) OR (brown AND green) OR green) AND NOT red

你能帮帮我吗?

【问题讨论】:

  • 标题中的问题具有误导性,有无数种方法可以将字典显示为字符串,您正在寻找转换特定的字典结构以表示逻辑操作
  • 为什么最后是AND NOT red?我在你的结构中没有看到否定运算符。
  • @Nicolás 因为 AND NOT red 意味着搜索任何不包含 red 的字段
  • @PyDroid 但您的字典中没有“NOT”
  • @AntiMatterDynamite 真的你是对的,我使用 new dict { 'value': "red", 'mean': 'not contains', 'field': 'field_name'}, in 'mean ' 示例:包含、不包含、相等、不相等等

标签:
string
python-3.x
dictionary
converter