数据存储

数据存储

处理JSON格式的数据

JSON字符串与字典相互转换

将字典转换为JSON字符串需要使用json模块的dumps函数。将JSON字符串转换为字典有下面两种方式

(1)使用json模块的loads函数,该函数通过参数传入JSON字符串,然后返回与该JSON字符串对应的字典(推荐)

(2)使用eval函数将字典转换为JSON字符串(不建议用这种方式)

尽管eval函数与loads函数都可与将JSON字符串转换为字典,但建议使用loads函数进行转换,因为eval函数可以执行任何python代码,如果JSON字符串中包含了有害的pthon代码,

执行JSON字符串可能会带来风险



本例将名为data的字典转换为JSON字符串,并使用loads函数将JSON字符串转换为字典。最后从products.json文件中读取JSON字符串转换为字典


cat >>/root/products.json<<EOF
data={
    'name':'Bill',
    'company':'Microsoft',
    'age':'30'
}
EOF


import json

#定义一个字典
data={
    'name':'Bill',
    'company':'Microsoft',
    'age':'30'
}
# 将字典转换为json字符串
jsonStr=json.dumps(data)
#输出jsonStr变量类型
print(type(jsonStr))
#输出json字符串
print(jsonStr)

#将json字符串转换为字典
data=json.loads(jsonStr)
#输出data变量类型
print(type(data))
#输出字典
print(data)

#打开products.json文件
f=open('/root/products.json','r',encoding='utf-8')
#读取products.json文件中的所有内容
jsonStr=f.read()
#使用loads函数将JSON字符串转换为字典
json1=json.loads(jsonStr)
#输出jjson1变量类型
print(type(jsonStr))
#输出json字符串
print(jsonStr)



E:\python\python.exe E:/test_code/tes5.py
<class 'str'>
{"name": "Bill", "company": "Microsoft", "age": "30"}
<class 'dict'>
{'name': 'Bill', 'company': 'Microsoft', 'age': '30'}
Traceback (most recent call last):
  File "E:/test_code/tes5.py", line 24, in <module>
    f=open('/root/products.json','r',encoding='utf-8')
FileNotFoundError: [Errno 2] No such file or directory: '/root/products.json'


没找到文件,连接linux操作实在太费劲了,不是这个错就是那个错,但是就是这样转换的

 

posted @ 2019-02-16 18:01  effortsing  阅读(120)  评论(0编辑  收藏  举报