python小练--使用正则表达式将json解析成dict

练习python语法,自己实现了一个简单的解析json字符,存为dict字典对象。

1 {
2     "id":12,
3     "name":"jack",
4     "age":23,
5     "sex":"man",
6     "city":"Beijing"
7 }

1. 利用字符串的操作,来解析json,将数据存入dict

def parse_json(content):
    # print(content)
    s = content[1:-1]
    s = s.replace(" ","")
    s = s.replace("\n","")
    #print(s)
    dict = {}
    str = s.split(",")
    # print(str)
    for x in str:
        info = x.split(':')
        key = info[0].replace('"','')
        value = info[1]
        dict[key] = value
        # print(info)
    print(dict)
    # print(str)

利用对字符串的替换、分割等操作,解析json非常复杂,代码不简洁也不易懂。

 

2. 利用正则表达式

import re
def parse_json(content):
    lines = content.split("\n")
    dict = {}
    for str in lines:
        km = re.match(r'\s*\"(\w+)\"\:\"?(\w+)\"?\,?', str)
        if km is not None:
            dict[km.group(1)] = km.group(2)
    print(dict)
if __name__ == '__main__':
f = open("persons.json")
jsons = f.read()
parse_json(jsons)
f.close()

#结果:{'id': '12', 'name': 'jack', 'age': '23', 'sex': 'man', 'city': 'Beijing'}

利用正则表达式,代码更简洁,可读性更强。

 

 

posted @ 2018-03-22 15:23  月半榨菜  阅读(488)  评论(0编辑  收藏  举报