python json快速解析命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python json快速解析命令相关的知识,希望对你有一定的参考价值。

参考技术A json.dumps 用于将 Python 对象编码成 JSON 字符串。
json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型。
demjson.encode() 函数用于将 Python 对象编码成 JSON 字符串。
demjson.decode() 函数解码 JSON 数据。该函数返回 Python 字段的数据类型。
1、以下实例将数组编码为 JSON 格式数据:
#!/usr/bin/python
import json

data = [ 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 ]
json = json.dumps(data)
print json

2、以下实例展示了Python 如何解码 JSON 对象:
#!/usr/bin/python
import json

jsonData = '"a":1,"b":2,"c":3,"d":4,"e":5';
text = json.loads(jsonData)
print text

快速解析 Json 后获取空数据

【中文标题】快速解析 Json 后获取空数据【英文标题】:Empty Data Getting After Json parsing in swift 【发布时间】:2017-08-24 19:10:38 【问题描述】:

我正在使用带有事件的日历,它工作正常,所有来自 JSON 的事件我可以解析存储在数组中的 JSON 数据,如果我可以显示 JSON 数组,它显示为空 滚动显示数据的日历 JSON 数组后, 这是代码

var EventsData = [Event]()

override func viewDidLoad() 
    super.viewDidLoad()
    getdairyDetails()

在 getdairyDetails() 中

if errorCode == "0" 

    if let event_list = jsonData["events"] as? NSArray 

        self.EventDates.removeAll()

        for i in 0 ..< event_list.count 

            if let event = event_list[i] as? NSDictionary 

                self.compareDate(date: (event["date"] as? String)!)

                self.EventsData.append(
                    Event(
                        eventId: event["eventId"] as? String,
                        eventName:event["details"] as? String,
                        eventDate: event["date"] as? String
                    )
                )
            
        
        self.do_refresh()
    

如果我可以调用这个函数

func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int 
    let dateString = self.dateFormatter2.string(from: date)
    print("this count first ",self.EventsData.count)

Result:
    this count first  0
    this count first  0
    this count first  0

After Scrolling the calender its showing 
    this count first  26
    this count first  26
    this count first  26

【问题讨论】:

发布do_refresh()和完整方法getdairyDetails() 您需要格式化此代码以使其清晰易读以进行调试。 【参考方案1】:

请试试这个代码

var  jsondarray = NSMutableArray()


override func viewDidLoad() 
    super.viewDidLoad()
    getdairyDetails()




func getdairyDetails()


    var userDic : [String : AnyObject] = [:]

    if errorCode == "0" 

        if let event_list = jsonData["events"] as? NSArray 


            for i in 0 ..< event_list.count 

                if let event = event_list[i] as? NSDictionary 

                    self.compareDate(date: (event["date"] as? String)!)

                    userDic = [
                        "eventId": event["eventId"] as? String,
                        "eventName":event["details"] as? String,
                        "eventDate": event["date"] as? String
                    ]

                    jsondarray.add(userDic)
               
            
        

        self.do_refresh()


func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int 
        let dateString = self.dateFormatter2.string(from: date)
        print("this count first ",self.jsondarray.count)

【讨论】:

我可以在调试代码后尝试你的代码,让 task = session.dataTask(with:request,completionHandler:(d,response,error) 在退出 func getdairyDetails() 请在for循环完成后添加do_refresh函数 Tq Bro 植入do_refresh功能后工作正常

以上是关于python json快速解析命令的主要内容,如果未能解决你的问题,请参考以下文章

如何高效快速地解析大量行格式json文件

基于HttpRunner,解析swagger数据,快速生成接口测试框架

快速入门 Python 爬虫常用解析库(xpathbs4)

python爬虫实战一|大众点评网

python操作:json文件中存在NumberInt(0),没有引号,无法解析?

[Python3]JSON解析