2016-10-19 80 views
0

我有一個文本文件中像這樣大辭典 「123456789」, 「sim_no」: 「+90 XXX XXX xx月xx」, 「DEVICE_TYPE 「:」standart「, 」hw_version「:」1.01「, 」sw_version「:」1.02「Python字符串與JSON(不工作)

我想轉換成字典這個文件。因爲我想要取值。

import json 
from time import sleep 

def buffer(data): 
    dicto=json.loads(data) 
    print(type(dicto))  

file=open("config.txt", "r").read() 
jsondata=json.dumps(file) 
buffer(jsondata) 

result : <class 'str'> 

,當我在外殼如下工作:

>>> import json 
>>> h = '{"foo":"bar", "foo2":"bar2"}' 
>>> type(h) 
<class 'str'> 
>>> d=json.loads(h) 
>>> d 
{'foo2': 'bar2', 'foo': 'bar'} 
>>> type(d) 
<class 'dict'> 
>>> 

它的工作,但我不明白爲什麼我的代碼不工作。當我將此文件轉換爲字典時,我想保存在緩衝區中。我怎麼能把這個數據放在數組裏面?請原諒我,我是Python新手。

+0

你能告訴你'config.txt'文件嗎? – Nurjan

+0

「IMEI」: 「123456789」, 「sim_no」: 「+90 XXX XXX xx月xx」, 「DEVICE_TYPE」: 「非標準」, 「hw_version」: 「1.01」, 「sw_version」: 「1.02」 –

+0

這完全是這樣嗎?用引號? – Nurjan

回答

2

好像你只需要添加外花括號JSON要求:

with open('config.txt', 'r+') as f: 
    newdata = '{{ {} }}'.format(f.read()) 
    f.seek(0) 
    f.write(newdata) 

否則,該文件已經JSON,因此需要在json模塊沒有實際使用(除非你想檢查它是否在修改之前已經合法,或者在之後驗證合法性)。