2016-10-19 39 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模块没有实际使用(除非你想检查它是否在修改之前已经合法,或者在之后验证合法性)。