By accessing the website and accepting the Cookie Policy, you agree to use the cookies provided by the Site in accordance with to analyze traffic, remember your preferences, and optimize your experience.
python列表、元组、集合、字典、json相互转换以及其他基础入门
json    2020-04-10 10:51:23    389    0    0
emengweb   json

 列表元组转其他

# 列表转集合(去重)
list1 = [6, 7, 7, 8, 8, 9]
set(list1)
# {6, 7, 8, 9}
 
#两个列表转字典
list1 = ['key1','key2','key3']
list2 = ['1','2','3']
dict(zip(list1,list2))
# {'key1': '1', 'key2': '2', 'key3': '3'}
 
#嵌套列表转字典
list3 = [['key1','value1'],['key2','value2'],['key3','value3']]
dict(list3)
# {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'}
 
# 列表、元组转字符串
list2 = ['a', 'a', 'b']
''.join(list2)
# 'aab'
 
tup1 = ('a', 'a', 'b')
''.join(tup1)
# 'aab'

字典转其他

# 字典转换为字符串
dic1 = {'a':1,'b':2}
str(dic1)
# "{'a': 1, 'b': 2}"
 
# 字典key和value互转
dic2 = {'a': 1, 'b': 2, 'c': 3}
{value:key for key, value in a_dict.items()}
# {1: 'a', 2: 'b', 3: 'c'}

字符串转其他

# 字符串转列表
s = 'aabbcc'
list(s)
# ['a', 'a', 'b', 'b', 'c', 'c']
 
# 字符串转元组
tuple(s)
# ('a', 'a', 'b', 'b', 'c', 'c')
 
# 字符串转集合
set(s)
# {'a', 'b', 'c'}
 
# 字符串转字典
dic2 = eval("{'name':'ljq', 'age':24}")
 
# 切分字符串
a = 'a b c'
a.split(' ')
# ['a', 'b', 'c']

JSON和字典之间相互转化

1.首先引入json模块

# 引入json模块
import json

2.转换

#JSON到字典转化:
dictinfo = json.loads(json_str) # 输出dict类型

#字典到JSON转化:
jsoninfo = json.dumps(dict) # 输出str类型

用json把字典序列化到文件中

#写程序最好是dump一次和load一次,可以存好几个文件
import json
info={'name':'Tom',
      'age':'12',
      'job':'work',}
f=open('file1.txt','w')
f.write(json.dumps(info))
f.close()

把字典存入文件中​

info={'name':'Tom',
      'age':'12',
      'job':'work',}
f=open('test.txt','w')
f.write(str(info))
f.close()

json将字典反序化读出来​

import json
f=open('file1.txt','r')
data=json.loads(f.read())
f.close()
print(data)
print(data['name'])

函数写到文件中用Pickle,不用json序列化​

import pickle
#pickle在本语言里有Python 在Java里是不认识pickle
def func(type):#函数
    print('in the func',type)
info = {'name': 'Tom',
        'age': '12',
        'job': 'work',
        'res': func ,}
 
f=open('file3.txt','wb')
#f.write(pickle.dumps(info))
#相等于
pickle.dump(info,f)
f.close()

函数反序列用Pickle,不用json序列化​

import pickle
def func(type):#函数
    print('in the func',type)
    print('内容不一样',type)#反序列的时候内容不一样
f=open('file3.txt','rb')
#data=pickle.loads(f.read()) 这句话相等于下面
data=pickle.load(f)
f.close()
print(data)
print(data['name'])
print(data['res']('string'))

 

上一篇: python文件操作与json格式转换

下一篇: debian9 安装 Python3.6.5

389 人读过
文档导航