字典转json 字典转化为字符串
json.loads和json.load的区别
alert(myobj[i].name);如使用json.dumps序列化的对象d_json=json.dumps({'a':1, 'b':2}),在这里d_json是一个字串'{"b": 2, "a": 1}'
字典转json 字典转化为字符串
字典转json 字典转化为字符串
d=json.loads(d_json) #{ b": 2, "a": 1},使用load重新反序列化为dict
2复杂的字典 --> 模型(模型属性名和字典的key不一样).load针对文件句柄
如本地有一个json文件a.json则可以d=json.load(open('a.json'))
JSON(JaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
可以加载外部文件
json.load()从文件中b = set(a)读取json字符串
json.loads()将json字符串转换为字典类型
如何将字符串变为字典?
Traceback (most recent call last):NSDictionary dict = @{@"":@"11",@"bb":@"22",@"cc":@"33"};
var myObject = JSON.parse(myJSONtext, filter);NSString str = [self dictionaryToJson:dict];
NSDictionary dict1 = [self dictionaryWithJsonString:str];
NSLog(@"%@",str);
NSLog(@"%@",dict1);
}/!
@brief 把格式化的JSON格式的字符串转换成字典
@param jsonString JSON格式的字符串
@return 返回字典
- (NSDictionary )dictionaryWithJsonString:(NSString )jsonString {
if (jsonString == nil) {
return nil;
}NSData jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary dic = [NSJSONSerialization JSONObjectWithData:jsonData
options:NSJSONReadingMutableContainers
error:&err];
if(err) {
NSLog(@"json解析失败:%@",err);
return nil;
}return dic;
}//词典转换为字符串
{NSError parseError = nil;
NSData jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:&parseError];
如何将数据实体转换为 JSON 字符串
json.dump()将json格式字符串写到文件中- (void)viewDidLoad {False可以看出,ok的,并且可以看出排序的原则是元素个数。
var
t="{'firstName': 'cyra', 'lastName': 'richardson', 'address': {
'streetAddress': '1 Microsoft way', 'city': 'Redmond', 'state': 'WA',
'talCode': 98052 },'phoneNumbers': [ '425-777-7777','206-777-7777' ]
}";
var jsonobj=eval('('+t+')');
alert(jsonobj.lastName);
var t2="[{name:'zhangsan',age:'24'},{name:'lisi',age:'30'},{name:'wangwu',age:'16'},{name:'tianqi',age:'7'}] ";
var myobj=eval(t2);
alert(myobj[i].age);
onclick=openLink(14113295100,社旗县国税局桥头税务
所,14113295100,d6d223892dc94f5bb501d4408a68333d,swjg_dm);>14113295100','
//通过eval() 函数可以将JSON字符串转化为对象
var obj = eval(t3);
for(var j=0;j alert(obj[i][j]); }} //可选的 filter 参数将遍历每一个value key 值对, 并进行相关的处理。如: //如 return key.indexOf('date') >= 0 ? new Date(value) : value; }); var myJSONText = JSON.stringifier(myObject);
示例
C#有个很好用的第三方程序集叫Json.Net,最简单的序列化方法:string json = JsonConvert.SerializeObject(要序列化的对象);
Python编程如何对列表中字典元素进行排序的方法详解
将步骤1中得到的字典内容再转成新的json文件,注意换行和中文乱码问题:这篇文章主要介绍了Python编程对列表中字典元素进行排序的方法,涉及Python针对列表及字典元素的遍历、读取、转换相关作技巧,需要的朋友可以参考下
oad和loads都是实现“反序列化”,区别在于(以Python为例):本文实例讲述了Python编程对列表中字典元素进行排序的方法。分享给大家供大家参考,具体如下:
内容目录:
1. 问题起源
2. 对列表中的字典元素排序
3. 对json进行比较(忽略列表中字典的顺序)
一、问题起源
json对象a,b a = '{"ROAD": [{"id": 123}, {"name": "no1"}]}'
b = '{"ROAD": [{"name": "no1"}, {"id": 123}]}'特点:a,b对应的Python的对象中键对应的键值——列表中包含着相同的字典元素,但是不同的是顺序不同。如果忽略顺序,如何判断两个json是否相等。因为字典本身是自己按键排序的,列表是按加入的顺序排序的,如果对列表中的字典元素进行排序就可以轻松地排序了。如果列表中是普通的元素(不是字典),通过list(set())组合可以读列表进行排序,而列表中如果是字典元素不能使用list(set())组合,看提示: >>> a = [{'a':1, 'b':2}, {'c':3}]
>>> a
[{'a': 1, 'b': 2}, {'c': 3}]
>>> b = set(a)
File "
", line 1, in
TypeError: unhashable type: 'dict'提示为字典是不可进行哈希作的类型(普通非字典的元素进行哈希作即可轻松排好序)。
那么问题的本质即:如何对列表中的字典元素排序。
二、对列表中的字典元素排序
还好,列表有sorted函数,试一下 >>> p = [{'b': 2}, {'a': 1, 'c': 3}]
>>> q = [{'a': 1, 'c': 3}, {'b': 2}]
>>> p
[{'b': 2}, {'a': 1, 'c': 3}]
>>> json.dumps()将python中的字典类型转换为字符串类型q
[{'a': 1, 'c': 3}, {'b': 2}]
>>> pp = sorted(p)
>>> qq = sorted(q)
>>> pp
[{'b': 2}, {'a': 1, 'c': 3}]
[{'b': 2}, {'a': 1, 'c': 3}]
>>> pp == qq
True
>>> p == q
三、对json进行比较(忽略列表中字典的顺序) import json
aa = json.loads(a)
bb = json.loads(b)
len_b = len(bb)
if len_a != len_b:
for key in aa:
if not bb.has_key(key):
if sorted(aa[key]) != sorted(bb[key]):
return True
if name == "main":
a = '{"ROAD": [{"id": 123}, {"name": "no1"}]}'
b = '{"ROAD": [{"name": "no1"}, {"id": 123}]}'
print compare_json(a, b)细节:自己写json格式时,a = "{'road':1}" json.loads(a) 错误,得写成a = '{"road:1}' 【单引号在外】
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系 836084111@qq.com 删除。