首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入没有引号的python字典

插入没有引号的python字典
EN

Stack Overflow用户
提问于 2022-02-25 12:16:02
回答 1查看 54关注 0票数 0

首先。谢谢任何能帮我听的人。我是个蟒蛇初学者,但是搜索了很多次之后,我似乎找不到答案,所以我很不情愿地发帖寻求帮助。我正在尝试用Python构建一个API请求。我遵循了一个教程,我可以使用一个固定的值使它工作,但是我需要为我自己的“指标”切换出来,这是一个大约200长的列表,而不是连续的。

一个工作例子如下:

代码语言:javascript
复制
body = {
'rsid': 'vrs_xxx_abgglobalvrs',
 'globalFilters': [
        {
            'type': 'dateRange',
            'dateRange': '2022-01-05T00:00:00.000/2022-02-04T00:00:00.000'
        }
    ],
    'metricContainer': {
    'metrics': [{
                "columnId": "0",
                "id": "metrics/event13"
            },
            {
                "columnId": "1",
                "id": "metrics/event23" 
            },
            {
                'columnId': '2',
                'id': 'metrics/event149'
            }

]
    },
    'dimension': 'variables/daterangeday',
    'settings': {
        'countRepeatInstances': 'true',
        'limit': 50,
        'page': 0,
        'dimensionSort': 'asc'
    }
}

如果打印此结果,结果如下所示:

代码语言:javascript
复制
....0/2022-02-04T00:00:00.000'}], 'metricContainer': {'metrics': [{'columnId': '0', 'id': 'metrics/event1'}, {'columnId': '1', 'id': 'metrics/event2'}, {'columnId': '2', 'id': 'metrics/event45'}]}, 'dimension': 'variabl...

但是,当我使用(更新body字典)时,我会在动态值的开头和结尾得到一个额外的引号:

代码语言:javascript
复制
....0/2022-02-04T00:00:00.000'}], 'metricContainer': {'metrics': [**"**{'columnId':'0','id': 'metrics/event1'},{'columnId': '1','id':......

作为参考,此动态值(字符串)是通过使用以下列方式生成的事件列表创建的:

代码语言:javascript
复制
list_of_events = df['id'].tolist()
list_of_cleaned_event = []
metricstring = ""
columnId = 0
strcolumn = str(columnId)
for events in list_of_events[0:3]:
    metric = str("{'columnId': '"+strcolumn+"','id': '"+events+"'},")
    columnId += 1
    strcolumn = str(columnId)
    list_of_cleaned_event.append(metric)

for i in list_of_cleaned_event:
   metricstring=metricstring+i
final = (metricstring[:-1])

身体看起来是这样的:

代码语言:javascript
复制
body = {
'rsid': 'vrs_avisbu0_abgglobalvrs',
 'globalFilters': [
        {
            'type': 'dateRange',
            'dateRange': '2022-01-05T00:00:00.000/2022-02-04T00:00:00.000'
        }
    ],
    'metricContainer': {
    'metrics': [final]
    },
    'dimension': 'variables/daterangeday',
    'settings': {
        'countRepeatInstances': 'true',
        'limit': 50,
        'page': 0,
        'dimensionSort': 'asc'
    }
}
EN

回答 1

Stack Overflow用户

发布于 2022-02-26 19:11:43

试试这个..。

代码语言:javascript
复制
final = []

list_of_events = ["metrics/event13", "metrics/event20", "metrics/event25"]
for columnId, events in enumerate(list_of_events[0:3]):
    metric = {'columnID': str(columnId), 'id': events}
    final.append(metric)

定义主体如下

代码语言:javascript
复制
body = {
'rsid': 'vrs_avisbu0_abgglobalvrs',
 'globalFilters': [
        {
            'type': 'dateRange',
            'dateRange': '2022-01-05T00:00:00.000/2022-02-04T00:00:00.000'
        }
    ],
    'metricContainer': {
    'metrics': final
    },
    'dimension': 'variables/daterangeday',
    'settings': {
        'countRepeatInstances': 'true',
        'limit': 50,
        'page': 0,
        'dimensionSort': 'asc'
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71265727

复制
相关文章

相似问题

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