zoukankan      html  css  js  c++  java
  • 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("
    ","")
        #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("
    ")
        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'}

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

     

  • 相关阅读:
    Maria 与Ann的故事
    引语
    Preface
    Chapter 1 Foundation
    Roman to Integer
    Integer to Roman
    Container with most water
    palindrome number
    String to Integer (atoi)
    Reverse Integer
  • 原文地址:https://www.cnblogs.com/zhacai/p/8624121.html
Copyright © 2011-2022 走看看