2017-07-12 72 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)}]}