2013-12-09 114 views
1

我有一個腳本,將excel轉換爲json並獲得此代碼。Python到Json轉換

l3 = dict(zip(l1.split(','), l2.split(','))) 
print l3 

其中l1和l2是列表。

輸出是這樣的

{'brand': 'car', 'color': 'red', 'model': '2009', 'value': '100000'} 

是否有可能去掉單引號這些鍵。

+1

然後,你可以使他們的變量,它會返回一個'NameError' –

回答

1

雖然很容易從字符串中刪除引號,但我不認爲你應該這樣做,因爲JSON密鑰應該在它們周圍有雙引號。

我認爲你應該根據你的要求做JSON轉換using json.dump or json.dumps

3

使用json module創建從一個Python對象JSON兼容的字符串:

>>> import json 
>>> l3 = {'brand': 'car', 'color': 'red', 'model': '2009', 'value': '100000'} 
>>> json.dumps(l3) 
'{"model": "2009", "color": "red", "value": "100000", "brand": "car"}' 

(或者直接創建一個JSON文件):

>>> with open("test.json", "w") as j: json.dump(l3, j) 
+0

我做不需要引號keys.Can我得到這樣{模型:「2009」,顏色:「紅色」,價值:「100000」,品牌:「汽車」} – prash

+2

@ user2957389:但它不是JSON了,爲什麼會你想要一個變量作爲一個關鍵?鍵必須是不可變的,儘管Python中有不可變的「變量」,但以這種方式使用它們幾乎總是一個壞主意。閱讀http://nedbatchelder.com/text/names.html –

2

如上所述,這不會是一個有效的json。但是,如果你堅持,就可以例如做一些定製類:

class NoQuoteReprString(str): 
    def __repr__(self): 
     return str(self) 

演示:

>>> data = {'brand': 'car', 'color': 'red', 'model': '2009', 'value': '100000'} 
>>> no_quote_data = {NoQuoteReprString(k): v for k, v in data.items()} 
>>> repr(no_quote_data) 
"{color: 'red', brand: 'car', model: '2009', value: '100000'}"