2017-07-12 63 views
1

我有一个变量看起来像这样:单引号的变量添加在Python

data = {"add_content": {"errata_ids": [advisory]},"content_view_version_environments": [{"content_view_version_id": version_id}]} 

我需要单引号加入到这个变量,也就是说,如果我将分配变量:

advisoryversion_id并添加单引号数据变量是这样的:

data = '{"add_content": {"errata_ids": ["RHSA-2017:1390"]},"content_view_version_environments": [{"content_view_version_id": 160}]}' 

我能够发布到API

我曾试图以各种方式加入单引号:

new_data = "'" + str(data) + "'" 
>>> new_data 
'\'{\'add_content\': {\'errata_ids\': [\'"RHSA-2017:1390"\']}, \'content_view_version_environments\': [{\'content_view_version_id\': \'160\'}]}\'' 

或使用:

'"%s"'%(data) 

和一些更多的方式。

如何在开始{和关闭}之前和之后将外部单引号添加到数据变量?

+2

你试图创建的是JSON,所以使用'json'模块。 – Barmar

+1

“dict”实例的Python字符串表示不一定是有效的JSON。 – chepner

+0

[Python转储字典到json文件]的可能重复(https://stackoverflow.com/questions/17043860/python-dump-dict-to-json-file) – zwer

回答

3

这正是JSON做:

import json 
new_data = json.dumps(data) 
0

如果在以前的答案恰恰相反和评论你是不是要转换为JSON字符串,然后使用的String.Format周围的变量:

data = {"add_content": {"errata_ids": '[{}]'.format(advisory)},"content_view_version_environments": [{"content_view_version_id": '{}'.format(version_id)}]}