#CSV显示GDP
import csv
import json
import pygal.maps.world
from pygal_maps_world.i18n import COUNTRIES

def get_country_code(country_name):
    """根据国家的名称,获取国家的二位简称"""
    for code,name in COUNTRIES.items():
        if country_name==name:
            return  code
    return None #没有值就返回none

#获取每个国家的国家简称--GDP的对应数据
filename="gdp_csv.csv"
with open(filename) as f:   #获取文件对象
    reader=csv.reader(f)    #创建阅读器对象
    header_row=next(reader) #获取首行
    country_GDP={}          #创建一个存储国家简称--GDP的字典
    for row in reader:      #遍历阅读器对象
        if row[2]=='2000':
            country=row[0]  #当前行的第一列
            code=get_country_code(country)
            GDP=float(row[3])
            if code:
                country_GDP[code]=GDP

#创建世界地图
wm=pygal.maps.world.World()
wm.title="2000年世界GDP数据"
wm.add("2000",country_GDP)
wm.render_to_file('worldGDP.svg')

#json显示GDP___________________________________________________________________________________________________________
jsonfilename='gdp_json.json'
with open(jsonfilename) as f:   #获取json的文件对象
    data=json.load(f)           #获取json对象的数据
    datas1,datas2,datas3,datas4={},{},{},{}
    for dt in data:
        country_name=dt['Country Name']
        code=get_country_code(country_name)
        value=float(dt["Value"])
        year=dt["Year"]
        if year==2001:
            if value<10567304189:
                datas1[code]=value
            elif value<189212096470.293:
                datas2[code]=value
            elif value<614756473708.65:
                datas3[code]=value
            else:
                datas4[code]=value
wm1=pygal.maps.world.World()
wm1.title="JSON GDP"
wm1.add("2001四等",datas1)
wm1.add("2001三等",datas2)
wm1.add("2001二等",datas3)
wm1.add("2001一等",datas4)
wm1.render_to_file("jsonGDP.svg")

 

posted on 2018-03-16 11:34  ghgxm520  阅读(398)  评论(0编辑  收藏  举报