2017-10-12 162 views
2

我有以下內容的.js文件:將一個字符串轉換字典

AppSettings = { 
       projectName:'myproject', 
       url: 'https://www.google.com', 
       appKey: 'k2y-myproject_124439_18111', 
       newsKey: '', 
       version: moment().format('YYMMDD_HHmmss'), 
       mixpanelToken: '08e97bef3930f330037d9z6t56395060' 
       }; 

,我想將它轉換成我可以作爲訪問Python字典如下

>>> print(data['AppSettings']['url'] 
>>> 'https://www.google.com' 

達到此目的的最佳方法是什麼?

+0

https://stackoverflow.com/questions/24027589/how-to-convert-raw-javascript-object-to-python-dictionary – chakri

+0

這裏有一個關於如何[parse-json](http://docs.python-guide.org/en/latest/scenarios/json/#parsing-json) – PetarP

+0

@PetarP的很好的例子謝謝。然而,它不是一個有效的json字符串 – labjunky

回答

2

代碼

d = {'AppSettings':{}} 
with open('tt.js', 'r') as f: 
    next(f) 
    for line in f: 
     splitLine = line.strip().replace(',','').split(':') 
     d['AppSettings'][splitLine[0]] = "".join(splitLine[1:]) 

d['AppSettings']['url']=d['AppSettings']['url'].replace('htt‌​ps//','https://') 
d['AppSettings'].pop("}", None) #remove last item "}" from dict 

print(d['AppSettings']['url']) 
print(d['AppSettings']['newsKey']) 
print(d['AppSettings']['appKey']) 
print(d['AppSettings']['version']) 
print(d['AppSettings']['mixpanelToken']) 

樣本輸出

'https://www.google.com' 
'' 
'k2y-myproject_124439_18111' 
moment().format('YYMMDD_HHmmss') 
'08e97bef3930f330037d9z6t56395060' 
+0

這裏有一個問題,它從URL中去掉':'。 – labjunky

+0

感謝您指出。 'd ['AppSettings'] ['url'] = d ['AppSettings'] ['url'] .replace('https //','https://')' –