【问题标题】:combining two JSON {key1:value1 , key2:value2} to single key (i e {key3:value1,value2}) Python将两个 JSON {key1:value1 , key2:value2} 组合成单个键(即 {key3:value1,value2})Python
【发布时间】:2016-05-04 06:54:26
【问题描述】:

我想将经度和纬度结合起来 {latlon: '40.33333,-79.34343'}

整个 JSON 在变量 data = jsonData 中

我想删除原来的键值对

{
  'locale': 'en_US',
  'timezone': '-7',
  'id': '13',
  'agerangemin': '21',
  'verified': 'true',
  'coverimageurl': 'scontent.xx.fbcdn/t31.0-0/p480x480/13063482_1183967848280764_1411489384515766669_o.jpg',
  'tagline': 'Veggien',
  'lastupdated': '1462341401',
  'fbupdated_time': '2016-03-30T00:38:48+0000',
  'lname': 'Kulkarni',
  'fname': 'Nikhil',
  'email': 'nikhilhk.usa@gmail.com',
  'latitude': '40.333333',
  'longitude': '-79.34343',
  'displayname': 'Nikhil Kulkarni',
  'fbprofileid': '1121344884543061',
  'profileimageurl': 'scontent.xx.fbcdn/hprofile-xft1/v/t1.0-1/p100x100/10423743_952350738109144_964810479230145631_n.jpg?oh=71f7e953dbbf8e2f1d9f22418f7888b2&oe=579F4A36',
  'link': 'facebook/app_scoped_user_id/1121344884543061/',
  'diet': 'Vegetarian',
  'dietsinceyear': '1966',
  'gender': 'M',
  'vegstory': '',
  'shortdescription': 'Just like that',
  'categoryids': '',
  'reasonforveg': 'Religious'
}

【问题讨论】:

    标签: python json


    【解决方案1】:
    data['latlong'] = data['latitude'] + ',' + data['longitude']
    del data['latitude']
    del data['longitude']
    

    【讨论】:

      【解决方案2】:

      可以在一行中完成。

      >>> dic = {'latitude': '40.333333', 'longitude': '-79.34343'}
      >>>
      >>> dic['latlon'] = "{0},{1}".format(dic.pop('latitude'),dic.pop('longitude'))
      >>> dic
      {'latlon': '40.333333,-79.34343'}
      

      要了解dic.pop() 的工作原理,请参阅this.

      【讨论】:

        【解决方案3】:
        >>> json_data['latlon'] = ','.join(json_data[k] for k in ('latitude', 'longitude'))
        >>> json_data['latlon']
        '40.333333,-79.34343'
        

        请注意,这将保留原始键值对。


        更新:

        如果要删除原始键值对,请使用pop 方法:

        >>> json_data['latlon'] = ','.join(json_data.pop(k) for k in ('latitude', 'longitude'))
        >>> json_data['latlon']
        '40.333333,-79.34343'
        

        【讨论】:

        • 如果没有相关的 cmets,我不明白 downvotes 的含义。如果答案不好或需要改进,评论会真正帮助每个人。
        • 如果你的回答是公正的,没有理由编辑它,看起来公平吗?
        • 好吧,OP在我回答后编辑了关于removing the original key-pair的问题,我刚才才看。而且,这就是需要更新的原因。如果投反对票的人也会评论原因,我会很感激的。
        猜你喜欢
        • 2023-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-22
        • 1970-01-01
        • 2019-01-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多