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'}
利用正则表达式,代码更简洁,可读性更强。