2014-02-19 51 views
-1

嘗試使用python腳本將給定的文本文件轉換爲.json文件。 我試圖將雙引號附加爲:output_str = '"'+input_str+'"',但它會在輸出中產生兩次雙引號。附加「結果追加」2次

i.e. if input_str = row 
output_str = ""row"" instead of "row" 
row.append(str) 
writer = csv.writer(open("data.json",'wb'), delimiter=',') 
writer.write(row) 

有什麼建議嗎?

+2

這個問題很混亂。你輸出到JSON,你想要雙引號,或者你不想雙引號?你可以在你的問題上發佈你的代碼嗎? – StephenH

+0

有關爲何需要代碼的說明,請參閱http://stackoverflow.com/help/mcve或http://SSCCE.ORG –

+0

您確定'input_str'尚未包含雙引號嗎?因爲它看起來像它。 – poke

回答

0

您的方法實際上是正確的。 Python可能會在字符串本身中添加引號,因爲它是string對象的表示。但是,在控制檯中顯示字符串時,這些引號只是添加的,否則就不存在!

>>> foo = "foobar" 
>>> foo 
'foobar' 
^ ^
# quotes add via displayed by str() method of foo 
>>> '"%s"' % foo 
'"foobar"' 
+0

然後,按照你的邏輯,'#'+ foo +'#'應該等於'#'foo''。引號僅用於輸出,它們是字符串repr的一部分,而不是字符串本身。 – Kaerber

+0

是的,我添加了更多的解釋。 –

0

從shell的一些代碼示例會更好,但您可能會看到圍繞字符串引號的shell引號。

我建議使用json library自動將您的字典轉換爲json文件。它會照顧你的一切。

1

首先你的方法看起來不錯。其次,我會用json庫創建json文件:

import json 
a = "this is a test" 
json.dumps({"a": a}) 
>> '{"a": "this is a test"}'