Python处理json数据--世界国家维度数据

1.准备国家的json数据

  将准备好的json数据放在指定的目录下,此处可以重这里下载

2.测试编写python脚本处理json提取字段值

#coding:utf8
import time, re, os, sys, time,urllib2,shutil,string
import json,datetime

#设置utf-8编码格式
reload(sys)
sys.setdefaultencoding( "utf-8" )

#获取当前日期的前n天
def getbeforeDay(n=0):
    now_time = datetime.datetime.now()
    beforeday = now_time - datetime.timedelta(n)
    return beforeday.strftime("%Y%m%d")

scriptDir = os.getcwd()

if len(sys.argv) > 1 :
    job_date_id = sys.argv[1]
else :
    job_date_id = getbeforeDay(0)

print "当前脚本路径:%s,当前参数日期:%s" % (scriptDir,job_date_id)

srcdata=‘{"area":"390,580","code":"263","en":"Zimbabwe","cn":"津巴布韦","iso2":"ZW","iso3":"ZWE","population":"11,651,858"}‘

jsondata = json.loads(srcdata)
print type(jsondata)

print "######遍历key,values######"
for key in jsondata.keys():
    print key,":",jsondata[key]

print "####或者指定key,返回结果####"
print jsondata[‘code‘],jsondata[‘cn‘],jsondata[‘en‘],jsondata[‘area‘],jsondata[‘population‘]

3.读取文本循环遍历提取字段值

#coding:utf8
import requests, json, time, re, os, sys, time,urllib2,shutil,string
import json,datetime

#设置utf-8编码格式
reload(sys)
sys.setdefaultencoding( "utf-8" )

#读取文件内容
def getLines(filename):
    file_object = open(filename,‘rb‘)
    lines = file_object.readlines()
    return lines

#返回规范字符串
def getFormateContext(*name):
    format = ‘,‘
    context = name[0]
    for i in name[1:]:
        context = context + format + str(i)
    context = str(context).replace(‘(‘, ‘(‘).replace(‘)‘, ‘)‘).replace(‘,‘, ‘,‘).replace(‘:‘, ‘:‘)
    return context

def getbeforeDay(n=0):
    now_time = datetime.datetime.now()
    beforeday = now_time - datetime.timedelta(n)
    return beforeday.strftime("%Y%m%d")

#写文件
def Write(filename,context,model=‘a‘):
    #去除首位空格
    filename = filename.strip()
    #读取目录名称
    path = os.path.dirname(filename)
    #如果目录不存在则创建目录
    if not os.path.exists(path):
        pass
    #读取文件名称
    name = os.path.basename(filename)
    fp = open(filename,model)
    fp.write(context+‘\n‘)
    fp.close()

scriptDir = os.getcwd()

if len(sys.argv) > 1 :
    job_date_id = sys.argv[1]
else :
    job_date_id = getbeforeDay(10)

print "当前脚本路径:%s,当前参数日期:%s" % (scriptDir,job_date_id)

filename="%s\/jsondata\/country.json" % (scriptDir)

for line in getLines(filename):
    line = line.strip()
    line = line[1:]
    line = line[:-2]
    for value in line.split("},"):
        srcdata = value+"}"
        #print srcdata
        print srcdata
        jsondata = json.loads(srcdata)

        #国家代码
        code = jsondata[‘code‘]
        #国家中文名称
        cn = jsondata[‘cn‘]
        #国家英文名称
        en = jsondata[‘en‘]
        #面积
        area = jsondata[‘area‘].replace(‘,‘,‘‘)
        #人口
        population = jsondata[‘population‘].replace(‘,‘,‘‘)
        #iso2
        iso2 = jsondata[‘iso2‘]
        #iso3
        iso3 = jsondata[‘iso3‘]
        #print code,cn,en,area,population,iso2,iso3
        context = getFormateContext(code,cn,en,area,population,iso2,iso3)
        print context
        Write("country.csv", context, model=‘a‘)

4.最终处理数据结果

CSV格式:

Excel格式:

原文地址:https://www.cnblogs.com/Jims2016/p/9247173.html

时间: 2024-07-31 02:39:10

Python处理json数据--世界国家维度数据的相关文章

python操作json来存储简单的数据,pickle来操作复杂的数据

json作为不同语言间进行数据交互的媒介,在当下已经渐渐取代了之前的xml,看一波python操作json 1 # coding = ascii 2 3 import json 4 import pickle 5 import sys 6 import os 7 ''' 8 练习json,pickle 9 json类型的数据可以实现不同语言间的数据交互, 10 python3中引入python是为了实现将字典,列表等格式的数据 11 打包成字符串形式,即将其序列化,使用eg.json.dump(

python通过json读写序列类型的数据文件

1 import json 2 class a: 3 def writeReadJson(self): 4 list2 =['1',5.,7,'3'] 5 with open("test.txt",'w') as f: 6 json.dump(list2,f)#将列表写入f文件 7 with open("test.txt", 'r') as f1: 8 j = json.load(f1)#将f1文件内容加载并赋给j 9 print(j) #输出{'3': 6, '5

完整中英文世界国家级联下拉列表插件【前端版】

这个小东西是之前小项目上临时增加功能的产物,那时候在网上找了很久都没有能用的插件,要么是数据残缺少得可怜,还有就是实现手段非常低效不可维护那种,各种奇拔问题!反正就没有逞心如意!那时候又急需要这样一个功能,百般无奈后灵机一动,想起某企鹅功能选项不是有这样的世界国家级联功能嚒!那肯定有地方存着这数据的哇!嘿嘿!心里突然暗喜,终于有方向,然后就是向这企鹅开刀找!在某个i18n国际化文件夹中找到了!立马放下心头大石!   这样子中英文版本的数据都有了!但是问题又来了!该怎么开始做呢? 怎么去调用这个数

Python将JSON格式数据转换为SQL语句以便导入MySQL数据库

前文中我们把网络爬虫爬取的数据保存为JSON格式,但为了能够更方便地处理数据,我们希望把这些数据导入到MySQL数据库中.phpMyadmin可以把MySQL数据库中的数据导出为JSON格式文件,但却不能把JSON格式文件导入到MySQL数据库.为了实现这个目标,可以编写Python脚本将JSON格式数据转换为SQL语句以便导入MySQL数据库. JSON文件tencent.json部分内容: {"recruitNumber": "1", "name&qu

使用Python解析JSON数据的基本方法

这篇文章主要介绍了使用Python解析JSON数据的基本方法,是Python入门学习中的基础知识,需要的朋友可以参考下: ----------------------------------------------------------------- Python的json模块提供了一种很简单的方式来编码和解码JSON数据. 其中两个主要的函数是 json.dumps() 和 json.loads() , 要比其他序列化函数库如pickle的接口少得多. 下面演示如何将一个Python数据结构

【机器学习实验】学习Python来分类现实世界的数据

引入 一个机器能够依据照片来辨别鲜花的品种吗?在机器学习角度,这事实上是一个分类问题.即机器依据不同品种鲜花的数据进行学习.使其能够对未标记的測试图片数据进行分类. 这一小节.我们还是从scikit-learn出发,理解主要的分类原则,多动手实践. Iris数据集 Iris flower数据集是1936年由Sir Ronald Fisher引入的经典多维数据集.能够作为判别分析(discriminant analysis)的样本.该数据集包括Iris花的三个品种(Iris setosa, Iri

【scikit-learn】学习Python来分类现实世界的数据

引入 一个机器可以根据照片来辨别鲜花的品种吗?在机器学习角度,这其实是一个分类问题,即机器根据不同品种鲜花的数据进行学习,使其可以对未标记的测试图片数据进行分类. 这一小节,我们还是从scikit-learn出发,理解基本的分类原则,多动手实践. Iris数据集 Iris flower数据集是1936年由Sir Ronald Fisher引入的经典多维数据集,可以作为判别分析(discriminant analysis)的样本.该数据集包含Iris花的三个品种(Iris setosa, Iris

vim调用python格式化json数据

vim调用python格式化json数据 November 30, 2013GNU/Linuxpython3, Vimopenwares python有个标准模块叫json,用于编码/解码,序列化/按序列化json格式数据. 服务器返回的json数据是非格式化的,程序使用没问题,如果需要阅读则亚历山大. 可以使用vim调用python json模块提供的命令行工具json/tool.py格式化json文本. vim打开json数据,命令行模式下 :%!python3 -m json.tool %

python和json数据相互转换,repr和eval()使用

python数据转换json import json # 导入json包 data = [ { "id": 1, "username": "zhangshan", "password": "123qwe", "lock": True }, { "id": 2, "username": "lisi", "password