python序列化和模組的匯入學習

2021-09-19 12:15:18 字數 3473 閱讀 6711

mylist=list(itertols.product([1,2,3,4,5],repeat=4))

print(mylist)

#序列化----轉向乙個字串的資料型別

#序列---字串

"" \

#寫檔案

# 網路上傳輸

#從資料型別--》字串的過程 序列化

#從字串到資料型別 反序列化

#json模組

# shelve模組

# #pickle模組

#json通用的序列化格式

#只有很少的一部分資料型別能夠通過json轉化成字串

#pickle

#所有的python中的資料型別都可以轉換成字串形式

#pickle序列化的內容只有python能夠理解

#且部分反序列化依賴python**

#shelve

#序列化控制代碼 使用方便

dic=

print(type(dic))

import json

str_d=json.dumps(dic)#序列化

print(type(str_d),str_d)

dic_d=json.loads(str_d)#反序列化

#數字 字串 元組 列表 字典

#json dump load是對檔案的操作

import json

dic=

f=open('fff','w',encoding='utf-8')

json.dump(dic,f)#往檔案裡寫

f.close()

f=open('fff')

res=json.load(f)#讀檔案

f.close()

print(type(res),res)

#json

# dumps{}---->'{}\n'

# #一行一行的讀

# #『{}\n'

#'{}'loads

l=[,,]

f=open('file','w')

import json

for dic in l:

str_dic=json.dumps(dic)

f.write(str_dic+'\n')

f.close()

f=open('file')

import json

for line in f:

dic =json.loads(line.strip())

f.close()

print(l)

import pickle

dic=

str_dic=pickle.dumps(dic)

print(str_dic)#一串二進位制內容

dic2 =pickle.loads(str_dic)

print(dic2)#字典

import time

struct_time = time.localtime(10000000)

print(struct_time)

f=open('pickle_file','wb')#注意是wb方式

pickle.dump(struct_time,f)

f.close()

f=open('pickle_file','rb')

struct_time2=pickle.load(f)

print(struct_time2.tm_year)

#shelve只提供乙個open方法,是用key來訪問的,使用起來和字典類似

import shelve

f=shelve.open('shelve_file')

f=#直接對檔案控制代碼操作,就可以存入資料

f.close()

import shelve

f1=shelve.open('shelve_file')

existing=f1['key']#取出資料的時候只需要直接用key獲取即可,但是如果key不存在會直接報錯

f1.close()

print(existing)

import shelve

f1=shelve.open('shelve_file')

f1['key']['new_value']='this was not here before'

f1.close()

f2=shelve.open('shelve_file',writeback=true)#writeback的優點是減少了出錯的概率,並且讓物件的持久化對使用者更加透明了,但這種方式並不是所有情況都需要,首先使用writeback以後,shell在open()放入時候增加額外記憶體的消耗,並且db在close()的時候會將快取中的每乙個物件寫入到db,這也會帶來額外的等待時間;

print(f2['key'])

f2.close()

print('demo.py')

#模組匯入

def read():

print('in read1')

#檔案##

import demo

demo.read()

#找到模組 建立這個模組的命名空間 把檔案內的名字都放到命名空間

import time as t

print(t.time())

#資料庫

import oracle

import mysql

#連線資料庫 登入認證 閉資料庫

if 資料庫=『oracle':

import oracle as db

if 資料庫=『mysql':

import mysql as db

#內建模組 擴充套件的django 自定義的模組

from time import sleep

sleep()

# 單獨匯入方法和變數

import sys

print(sys.path)

#demo.py

__all__=['money','read','read2']

print('in demo.py')

money=100

def read():

print('in read1',money)

def read2():

print('in read2',money)

from demo import *

# import 模組名

# #模組名.變數名 和本檔案中的變數名完全不衝突

# #模組不會重複匯入:sys.moudles sys.path這裡匯入

# import 模組名 as 重新命名的模組名:提高**的相容性

#__name__

#在模組中 有乙個變數__name__,

# 當我們直接執行這個模組的時候,__name__=='__main__'

# 當我們執行其他模組,在其他模組中引用模組的時候,這個模組中的__name__=='模組的名字'

序列化模組和匯入模組

序列化 轉向乙個字串資料型別 序列 字串 json 數字 字串 列表 字典 元組 pickle 所有的python中的資料型別都可以轉化成字串形式 pickle序列化的內容只有python能理解 且部分反序列化依賴python shelve 序列化控制代碼 使用控制代碼直接操作,非常方便 impor...

python 序列化模組 python 序列化模組

一 介紹 1 分類 序列化 資料型別 字串 反序列化 字串 資料型別 2 作用 檔案傳輸和檔案儲存需要將資料型別轉換成字串 二 序列號模組分類 1 json 優點 程式語言中的英語,同用語言 缺點 資料型別少 數字 字串 列表 字典 元祖 通過列表進行的 2 pickle 優點 python的所有資...

python 序列化模組

1 分類 序列化 資料型別 字串 反序列化 字串 資料型別 2 作用 檔案傳輸和檔案儲存需要將資料型別轉換成字串 1 json 優點 程式語言中的英語,同用語言 缺點 資料型別少 數字 字串 列表 字典 元祖 通過列表進行的 2 pickle 優點 python的所有資料型別 缺點 不通用,只能在p...