+ -
当前位置:首页 → 问答吧 → python中如何将一个字典中的两个key关联起来

python中如何将一个字典中的两个key关联起来

时间:2011-11-11

来源:互联网

Python code

 {u'body': {}, u'header': {u'isJailBroken': u'NO', u'language': u'zh-Hans', u'country': u'CN', u'System': u'iPhone OS', u'appversion': u'1.1.2', u'Version': u'5.0', u'time': u'12:01:12', u'date': u'2011-11-10', u'timezone': u'8', u'model': u'iPad', u'appIdentifier': u'App Store', u'device_id': u'e4189a35fd5ed8946ea84c82fde5a9b923429e4e'}}

{u'body': {u'page': 16}, u'header': {u'isJailBroken': u'NO', u'language': u'zh-Hans', u'country': u'CN', u'System': u'iPhone OS', u'appversion': u'1.1.2', u'Version': u'4.2.1', u'time': u'00:05:24', u'date': u'2011-11-10', u'timezone': u'8', u'model': u'iPad', u'appIdentifier': u'App Store', u'device_id': u'd0ad003243e3ff389f5f7e96c7f4b87c154c7969'}}

 {u'body': {}, u'header': {u'isJailBroken': u'NO', u'language': u'zh-Hans', u'country': u'CN', u'System': u'iPhone OS', u'appversion': u'1.1.2', u'Version': u'5.0', u'time': u'12:01:12', u'date': u'2011-11-10', u'timezone': u'8', u'model': u'iPad', u'appIdentifier': u'App Store', u'device_id': u'32d5e7bb9bffec98731a9dcbecb3ef49fb1c041d'}}

{u'body': {u'page': 22}, u'header': {u'isJailBroken': u'NO', u'language': u'zh-Hans', u'country': u'CN', u'System': u'iPhone OS', u'appversion': u'1.1.2', u'Version': u'5.0', u'time': u'00:01:11', u'date': u'2011-11-10', u'timezone': u'8', u'model': u'iPad', u'appIdentifier': u'App Store', u'device_id': u'118137bc3a21b9f1cb43e34412b7088e41e72006'}}

{u'body': {u'page': 22, u'7884': {u'detail_c': 1, u'num_iid': u'12361369592'}}, u'header': {u'isJailBroken': u'NO', u'language': u'en', u'country': u'US', u'System': u'iPhone OS', u'appversion': u'1.1.2', u'Version': u'5.0', u'time': u'12:01:12', u'date': u'2011-11-10', u'timezone': u'8', u'model': u'iPad', u'appIdentifier': u'App Store', u'device_id': u'2bf0f937727e7918fdf9e4aa3e329378c81f3a4d'}}
No JSON object could be decoded

 {u'body': {u'page': 17}, u'header': {u'isJailBroken': u'NO', u'language': u'zh-Hans', u'country': u'CN', u'System': u'iPhone OS', u'appversion': u'1.1.2', u'Version': u'4.2.1', u'time': u'00:05:25', u'date': u'2011-11-10', u'timezone': u'8', u'model': u'iPad', u'appIdentifier': u'App Store', u'device_id': u'd0ad003243e3ff389f5f7e96c7f4b87c154c7969'}}


如上述数据,想将body里的page和header里的device_id对应起来,并将同一个device_id对应的几个page的值的最大值获得。最重要的是如何使page和device_id有对应关系,求教

作者: tys1986blueboy   发布时间: 2011-11-11

自己把两个字段拿出来,自己去用啊:
x['body']['page']
x['header']['App Store']

想怎么用就怎么用。我不知道你想怎么用。

作者: iambic   发布时间: 2011-11-11

引用 1 楼 iambic 的回复:

自己把两个字段拿出来,自己去用啊:
x['body']['page']
x['header']['App Store']

想怎么用就怎么用。我不知道你想怎么用。

让一个字典里的它们能一一对应,device_id可能是很多重复的,每个对应一个page,也就是一个相同的key是device_id,如何对应上不同的page,并取得最大的那个page值

作者: tys1986blueboy   发布时间: 2011-11-11

这个太简单了。
一、创建一个新字典保存结果(device_id->page)
二、遍历每个字典数据
三、遍历的时候,取出page和device_id
四、检查结果字典,如果已经有了divce_id,比较当前page和结果里的page哪个大,把最大的更新的字典里;如果字典里没有,直接更新。
五、最后遍历。

自己照着写吧。都是十分基础的知识。
写这些步骤给你比实际写代码给你还麻烦。但是对于这种基础问题我不替人写代码。自己努力。

作者: iambic   发布时间: 2011-11-11

五、最后遍历结果字典。

作者: iambic   发布时间: 2011-11-11

引用 3 楼 iambic 的回复:

这个太简单了。
一、创建一个新字典保存结果(device_id->page)

四、检查结果字典,如果已经有了divce_id,比较当前page和结果里的page哪个大,把最大的更新的字典里;如果字典里没有,直接更新。



创建新字典时以device_id为key吗?如果这样的话已经丢失大部分page值了
如果是将device_id和page都作为新字典的value,第四中所说的比较当前和结果里的page时如何确保是同一个device_id对应的不同page?

作者: tys1986blueboy   发布时间: 2011-11-11

引用 5 楼 tys1986blueboy 的回复:

引用 3 楼 iambic 的回复:

这个太简单了。
一、创建一个新字典保存结果(device_id->page)

四、检查结果字典,如果已经有了divce_id,比较当前page和结果里的page哪个大,把最大的更新的字典里;如果字典里没有,直接更新。



创建新字典时以device_id为key吗?如果这样的话已经丢失大部分page值了
如果是将device_id和……

device_id : {page的list}

这样就可以了

作者: libralibra   发布时间: 2011-11-11