json模块使用,无法对array对象序列化
来源:互联网 发布:gbase数据库 编辑:程序博客网 时间:2024/06/06 05:56
from numpy import *a=array([1,2,3])b=[1,2,3]import jsonnewlistb=json.dumps(b)print newlistbnewlista=json.dumps(a)print newlista# [1, 2, 3]# Traceback (most recent call last):# File "E:/ѧϰ����ô���/��һ��ѧ��/1.py", line 12, in <module># newlista=json.dumps(a)# File "C:\Python27\lib\json\__init__.py", line 244, in dumps# return _default_encoder.encode(obj)# File "C:\Python27\lib\json\encoder.py", line 207, in encode# chunks = self.iterencode(o, _one_shot=True)# File "C:\Python27\lib\json\encoder.py", line 270, in iterencode# return _iterencode(o, 0)# File "C:\Python27\lib\json\encoder.py", line 184, in default# raise TypeError(repr(o) + " is not JSON serializable")# TypeError: array([1, 2, 3]) is not JSON serializable
python读写json文件
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
JSON在python中分别由list和dict组成。
这是用于序列化的两个模块:
- json: 用于字符串和python数据类型间进行转换
- pickle: 用于python特有的类型和python的数据类型间进行转换
Json模块提供了四个功能:dumps、dump、loads、load
pickle模块提供了四个功能:dumps、dump、loads、load
json dumps把数据类型转换成字符串 dump把数据类型转换成字符串并存储在文件中 loads把字符串转换成数据类型 load把文件打开从字符串转换成数据类型
json是可以在不同语言之间交换数据的,而pickle只在python之间使用。json只能序列化最基本的数据类型,josn只能把常用的数据类型序列化(列表、字典、列表、字符串、数字、),比如日期格式、类对象!josn就不行了。而pickle可以序列化所有的数据类型,包括类,函数都可以序列化。
事例:
dumps:将python中的 字典 转换为 字符串
1 import json2 3 test_dict = {'bigberg': [7600, {1: [['iPhone', 6300], ['Bike', 800], ['shirt', 300]]}]}4 print(test_dict)5 print(type(test_dict))6 #dumps 将数据转换成字符串7 json_str = json.dumps(test_dict)8 print(json_str)9 print(type(json_str))
loads: 将 字符串 转换为 字典
1 new_dict = json.loads(json_str)2 print(new_dict)3 print(type(new_dict))
dump: 将数据写入json文件中
1 with open("../config/record.json","w") as f:2 json.dump(new_dict,f)3 print("加载入文件完成...")
load:把文件打开,并把字符串变换为数据类型
1 with open("../config/record.json",'r') as load_f:2 load_dict = json.load(load_f)3 print(load_dict)4 load_dict['smallberg'] = [8200,{1:[['Python',81],['shirt',300]]}]5 print(load_dict)6 7 with open("../config/record.json","w") as dump_f:8 json.dump(load_dict,dump_f)
阅读全文
0 0
- json模块使用,无法对array对象序列化
- ios 实现 Array 和 Dictionaries 序列化成 JSON 对象
- Sturts2 使用 json-plugin序列化时屏蔽无关对象
- python序列化模块json和pickle
- VS2008下使用Newtonsoft.Json对JSON的序列化与反序列化
- .Net使用Newtonsoft.Json.dll(JSON.NET)对象序列化成json、反序列化json示例教程
- JavaScriptSerializer如何对Json对象序列化和反序列化
- 使用NewtonSoft.JSON.dll来序列化和发序列化对象
- 使用NewtonSoft.JSON.dll来序列化和发序列化对象
- 使用NewtonSoft.JSON.dll来序列化和发序列化对象
- 使用NewtonSoft.JSON.dll来序列化和发序列化对象
- 使用NewtonSoft.JSON.dll来序列化和发序列化对象
- 对象序列化为JSON的时候使用策略修改序列化的结果
- 在MVC中使用Json.Net序列化和反序列化Json对象
- c# 使用 Newtonsoft.Json 序列化json字符串以及,反序列化对象
- ASP.NET:使用Newtonsoft.Json序列化和反序列化JSON对象的例子
- JSON对象克隆(JSON对象序列化)(支持function)
- 使用Json字符串对model对象赋值
- 设计模式C++版:第十六式享元模式
- “米粉节”背后的故事——小米网抢购系统开发实践
- HTTPS请求添加请求头
- 说话聊天技巧
- c++语句补充
- json模块使用,无法对array对象序列化
- Android动画学习一
- python笔记(二)一些特别语法
- CSS-派生选择器
- CODER-动态规划编程题
- 双色Hanoi塔问题
- Twincat3
- leetcode Add to List 637. Average of Levels in Binary Tree
- C++动态规划算法之0-1背包问题