2015-10-11 78 views
3

我知道這個問題聽起來很天真,但我堅持使用它。我正在使用jquery自動完成,事實證明它需要[「data1」,「data2」]列表形式。Python str()雙引號字符串

我從一個JSON文件中獲取數據,並

data = json.load(fobj)['content'] 
data = [str(data[d]['name']) for d in data.keys()] 

[「一些文本」,「其他一些」 ....]

,但我特別希望在列表中的雙引號的字符串。我已經嘗試過repr(str(data)),但是它給出了''一些文本'',然後''一些文本''。strip(「'」),但是這又返回一個單引號字符串。

爲了完成工作我做

data = [str(data[d]['name'] + "'") for d in data.keys()] 

後來過程中的「'」在字符串的結尾,但這是不正確的做法。

有什麼辦法用,我可以迫使STR()返回雙引號的字符串像STR(數據,報價=「」「)。

+1

感謝您爲電子商務dit建議。我幾個月前沒有發帖,我忘記了格式化規則。 –

回答

3

jQuery的,這就意味着JavaScript。JavaScript的字面意思JSON,只需重新。編碼

>>> json.dumps(['foo', '''bar''']) 
'["foo", "bar"]' 
+0

哦!我在這一個上浪費了30多分鐘。謝謝 –

1

在Python單引號或雙引號的字符串是相同的,例如:

a = 'some text' 
b = "some text" 

原因都在Python有是因爲你可能有:

a2 = 'He said: "Hello!"' 
b2 = "It's OK!" 

三重引號也使用這樣的:

a3 = """some text""" 
b3 = '''some text''' 

如果你正在嘗試做的是什麼地方打印(在文件中)雙引號的字符串列表,你可以做這樣的:

lst = ['text 1', 'text 2'] 
print "[%s]" % ", ".join(map(lambda e: '"%s"' % e, lst)) 

輸出:

["text 1", "text 2"]