python中自带了处理python的模块,使用时候直接import json即可。
使用loads方法即可将json字符串转换成python对象,对应关系如下:
JSON Python
object dict
array list
string unicode
number (int) int, long
number (real) float
true True
false False
null None
一。但在使用json模块的时候需要注意的是对中文的处理,loads方法如果传入的字符串的编码不是UTF-8的话,需要用encoding指定字符编码
import json
import base64
f = open("./result_diff.txt")
for l in f:
try:
fp = l[l.find("?fp")+1 :]
Http = fp.find("HTTP/")
fp = fp[3:Http-1]
fp = fp.decode("gbk").encode("utf-8")
str1 = json.loads(fp, encoding="utf-8")
4、data1 = {'b':789,'c':456,'a':123}
d1 = json.dumps(data1,sort_keys=True,indent=4)
print d1
输出:
{
"a": 123,
"b": 789,
"c": 456
}
但是由于dict存储的无序特性,造成两者无法比较。因此两者可以通过排序后的结果进行存储就避免了数据比较不一致的情况发生,但是排序后再进行存储,系统必定要多做一些事情,也一定会因此造成一定的性能消耗,所以适当排序是很重要的。
indent参数是缩进的意思,它可以使得数据存储的格式变得更加优雅。
使用loads方法即可将json字符串转换成python对象,对应关系如下:
JSON Python
object dict
array list
string unicode
number (int) int, long
number (real) float
true True
false False
null None
一。但在使用json模块的时候需要注意的是对中文的处理,loads方法如果传入的字符串的编码不是UTF-8的话,需要用encoding指定字符编码
import json
import base64
f = open("./result_diff.txt")
for l in f:
try:
fp = l[l.find("?fp")+1 :]
Http = fp.find("HTTP/")
fp = fp[3:Http-1]
fp = fp.decode("gbk").encode("utf-8")
str1 = json.loads(fp, encoding="utf-8")
4、data1 = {'b':789,'c':456,'a':123}
d1 = json.dumps(data1,sort_keys=True,indent=4)
print d1
输出:
{
"a": 123,
"b": 789,
"c": 456
}
但是由于dict存储的无序特性,造成两者无法比较。因此两者可以通过排序后的结果进行存储就避免了数据比较不一致的情况发生,但是排序后再进行存储,系统必定要多做一些事情,也一定会因此造成一定的性能消耗,所以适当排序是很重要的。
indent参数是缩进的意思,它可以使得数据存储的格式变得更加优雅。