文档章节

python转换数据

玩代码的小坏孩
 玩代码的小坏孩
发布于 2016/10/28 22:50
字数 465
阅读 24
收藏 0

项目中配到一个配置数据,是按城市下面有很多个服务项。城市很多,如果一个个城市配置起来会很麻烦,所以就有了用服务项来配置,然后增加一个属性是这个服务项在多少个城市里面开通了,然后用python写了个程序进行转换。 原格式如下:

[
  {
    "title": "家庭保洁",
    "subTitle": "高品质保洁",
    "img3x": "http://www.daojia.com/1.jpg",
    "img2x": "http://www.daojia.com/1.jpg",
    "href": "http://www.daojia.com",
    "cityids": [
      1,
      2,
      3
    ],
    "citynames": [
      "北京",
      "广州",
      "上海"
    ]
  },
  {
    "title": "家庭保洁1",
    "subTitle": "高品质保洁1",
    "img3x": "http://www.daojia.com/1.jpg",
    "img2x": "http://www.daojia.com/1.jpg",
    "href": "http://www.daojia.com",
    "cityids": [
      1,
      2
    ],
    "citynames": [
      "北京",
      "广州"
    ]
  }
]

转换后的格式如下:

[
  {
    "cityId": "2",
    "data": [
      {
        "title": "家庭保洁",
        "img3x": "http://www.daojia.com/1.jpg",
        "href": "http://www.daojia.com",
        "img2x": "http://www.daojia.com/1.jpg",
        "subTitle": "高品质保洁"
      },
      {
        "title": "家庭保洁1",
        "img3x": "http://www.daojia.com/1.jpg",
        "href": "http://www.daojia.com",
        "img2x": "http://www.daojia.com/1.jpg",
        "subTitle": "高品质保洁1"
      }
    ],
    "cityName": "广州"
  },
  {
    "cityId": "1",
    "data": [
      {
        "title": "家庭保洁",
        "img3x": "http://www.daojia.com/1.jpg",
        "href": "http://www.daojia.com",
        "img2x": "http://www.daojia.com/1.jpg",
        "subTitle": "高品质保洁"
      },
      {
        "title": "家庭保洁1",
        "img3x": "http://www.daojia.com/1.jpg",
        "href": "http://www.daojia.com",
        "img2x": "http://www.daojia.com/1.jpg",
        "subTitle": "高品质保洁1"
      }
    ],
    "cityName": "北京"
  },
  {
    "cityId": "3",
    "data": [
      {
        "title": "家庭保洁",
        "img3x": "http://www.daojia.com/1.jpg",
        "href": "http://www.daojia.com",
        "img2x": "http://www.daojia.com/1.jpg",
        "subTitle": "高品质保洁"
      }
    ],
    "cityName": "上海"
  }
]

代码如下:

#-*-coding:utf-8-*-

import json

if __name__=="__main__":
	print("begin=============")
	file=open("ss.json","r",encoding="utf-8")
	ss=""
	for line in file:
		ss+=line
	data=json.loads(ss)
	total=dict()
	
	for item in data:
		
		cityIdList=item["cityids"]
		cityNameList=item["citynames"]
		title=item["title"]
		subTitle=item["subTitle"]
		img2x=item["img2x"]
		img3x=item["img3x"]
		href=item["href"]

		itemDict={"title":title,"subTitle":subTitle,"img2x":img2x,"img3x":img3x,"href":href}
		
		for i in range(len(cityIdList)):
			itemList=list()
			key=str(cityIdList[i])+"_"+cityNameList[i]
			if key in total:
				itemList=total[key]
			itemList.append(itemDict)
			total[key]=itemList
	
	totalResult=list()

	for k,v in total.items():
		keyText=k.split("_")
		cityId=keyText[0]
		cityName=keyText[1]
	
		totalResult.append({"cityId":cityId,"cityName":cityName,"data":v})
	print("result is "+"="*40)
	print(json.dumps(totalResult,ensure_ascii=False))
	print("end============")

© 著作权归作者所有

玩代码的小坏孩
粉丝 7
博文 38
码字总数 10422
作品 0
昌平
程序员
私信 提问
学习笔记(11月13日)--json的使用

五周一次课(11月13日) 一、json的使用 Json简介:Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式。Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式。...

wanyang_wanyang
2018/06/26
0
0
聊聊Python 3 的字符串:str 和 bytes 的区别

文章首发于我的技术博客:你可以在上面看到更多的Python教程和python爬虫 Python2的字符串有两种:str 和 unicode,Python3的字符串也有两种:str 和 bytes。Python2 的 str 相当于 Python3 ...

呆木木人儿
03/15
53
0
Python3 json和pickle序列化

用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换 pickle,用于python特有的类型 和 python的数据类型间进行转换 Json模块提供了四个功能: pickle模块提供了四个功能:...

ZeroBit
07/20
37
0
[雪峰磁针石博客]python数据分析快速入门教程2-pandas数据结构

Title: python数据分析快速入门教程2-pandas数据结构 Date: 2018-03-31 9:20 Category: 数据分析 Slug: pythonpandascrash_tutorial2 [雪峰磁针石博客]python数据分析快速入门教程1-开胃菜 ...

Python测试开发人工智能
2018/07/10
0
0
《Python从小白到大牛》第6章 数据类型

在声明变量时会用到数据类型,在前面已经用到一些数据类型,例如整数和字符串等。在Python中所有的数据类型都是类,每一个变量都是类的“实例”。没有基本数据类型的概念,所以整数、浮点和字...

tony关东升
2018/07/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
38分钟前
4
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
4
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部