#科技青年# #科技V計劃# #Python代碼# 文本轉json總是不成功,有幾個坑要小心json是一個很優美的層次化數據存儲方式,是大量嵌套數據的理想存儲方式。很多網頁的數據就是以json格式來編寫和傳輸的,獲取到json數據後可以很方便地層層分析數據。獲取到了json格式結構如下圖。

#科技青年# #科技V計劃# #Python代碼# 文本轉json總是不成功,有幾個坑要小心json是一個很優美的層次化數據存儲方式,是大量嵌套數據的理想存儲方式。很多網頁的數據就是以json格式來編寫和傳輸的,獲取到json數據後可以很方便地層層分析數據。獲取到了json格式結構如下圖。json的主要格式就是一個“名稱”後跟一個:冒號;“‘名稱:值’成對”,之間使用逗號分隔。比如像這樣的字符串:{"a":1,"b":2,"c":3,"d":4,"e":5}在python中是怎樣轉化為json的呢?舉個例子:jsonData = \\'{"a":1,"b":2,"c":3,"d":4,"e":5}\\';text = json.loads(jsonData)就這麼兩句話,一個成串的文本就輕鬆轉換為了json數據。但在實戰過程中,常常會遇到很多意想不到的問題。問題1:字符串必須是以{左括號開始,}右括號結束的數據,如果不是,就要想辦法截取很多時候遇到的字符串是不太規則的數據,比如收到了這樣的文本數據:這時候就需要這樣的程序:json_data = re.findall(r\\'g_page_config = (.*);\\', text)[0]這句程序的含義是:取左邊g_page_config = 為開頭,右邊為;結尾之間的部分。如果獲取到的數據左右比較規則,比如像這樣的數據:jsonp620({"pageName": "mainsrp"})就可以用這樣的程序:response = response.split(\\'(\\')[1].split(\\')\\')[0]這句程序的含義是:用字符串split()截取()之間的部分。問題2:字符串必須是一排數據,如果不是,就需要一排一排的讀取有時候收到字符串有很多排,這時候轉換為json直接回報錯。解決方案就是一排一排的轉換為json,然後再將所有的json數據組合在一起。程序就像這樣:file = open("test1.txt", \\'r\\', encoding=\\'utf-8\\')papers = []for line in file.readlines(): dic = json.loads(line) papers.append(dic)以上就是常遇到的兩個問題,你學會了嗎?


分享到:


相關文章: