Python3处理json文件和csv文件

 更新时间:2026年01月07日 09:31:02   作者:Asia-Lee  
这篇文章主要为大家详细介绍了Python3处理json文件和csv文件的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

本文介绍了使用Python处理JSON及CSV文件的方法。首先展示了如何从JSON文件中提取2010年的各国人口数据并利用国别码进行展示;其次通过一个CSV文件案例,演示了如何读取气象数据并绘制成易于理解的图表。

1、Python3处理json文件

'''
The i18n module was removed in pygal-2.0.0.
 however, it can now be found in the pygal_maps_world plugin.
You can install that with pip install pygal_maps_world.
Then you can access COUNTRIES as pygal.maps.world.COUNTRIES:
from pygal.maps.world import COUNTRIES
Whats left of the i18n module can be imported with:
from pygal_maps_world import i18n
'''
#获取两个字母的国别码
from pygal_maps_world.i18n import COUNTRIES
def get_country_code(country_name):
    for code,name in COUNTRIES.items():
        if name==country_name:
            return code
        return None
import json
from Country_codes import get_country_code
#提取相关数据
filename='population_data.json'
with open(filename) as f:
    pop_data=json.load(f) #json.load()将数据转换为Python能够处理的格式并存储在pop_data中
    for pop_dict in pop_data:
        #获得每个国家2010年的人口数量
        if pop_dict['Year']=='2010':
            country_name=pop_dict['Country Name']
            population=int(float(pop_dict['Value']))#先将字符串转换为浮点数,再将浮点数转换为整数
            code=get_country_code(country_name)  #获得国家的国别码
            if code:
                print(code+':'+str(population))
            else:
                print('ERROR-'+country_name)

2、Python3处理csv文件

import csv
from matplotlib import pyplot as plt
from datetime import datetime
#读取CSV文件数据
filename='sitka_weather_2014.csv'
with open(filename) as f: #打开这个文件,并将结果文件对象存储在f中
    reader=csv.reader(f)  #创建一个阅读器reader
    header_row=next(reader) #返回文件中的下一行
    dates,highs,lows=[],[],[]      #声明存储日期,最值的列表
    for row in reader:
        current_date=datetime.strptime(row[0],'%Y-%m-%d')  #将日期数据转换为datetime对象
        dates.append(current_date)    #存储日期
        high=int(row[1])    #将字符串转换为数字
        highs.append(high)   #存储温度最大值
        low=int(row[3])
        lows.append(low)    #存储温度最小值

#根据数据绘制图形
fig=plt.figure(dpi=128,figsize=(10,6))
plt.plot(dates,highs,c='red',alpha=0.5)#实参alpha指定颜色的透明度,0表示完全透明,1(默认值)完全不透明
plt.plot(dates,lows,c='blue',alpha=0.5)
plt.fill_between(dates,highs,lows,facecolor='blue',alpha=0.1) #给图表区域填充颜色
plt.title('Daily high and low temperature-2004',fontsize=24)
plt.xlabel('',fontsize=16)
plt.ylabel('Temperature(F)',fontsize=16)
plt.tick_params(axis='both',which='major',labelsize=16)
fig.autofmt_xdate()  #绘制斜的日期标签
plt.show()

结果如下:

3、方法补充

Python3处理JSON格式的文件数据

下面介绍了一种从世界地图插件中获取国别码的方法,并演示了如何使用Python从JSON文件中提取指定年份的各国人口数据。通过安装pygal_maps_world插件并利用其i18n模块中的COUNTRIES字典来匹配国家名称与其对应的两字母国别码。

Country_code.py

'''
The i18n module was removed in pygal-2.0.0.
 however, it can now be found in the pygal_maps_world plugin.
You can install that with pip install pygal_maps_world.
Then you can access COUNTRIES as pygal.maps.world.COUNTRIES:
from pygal.maps.world import COUNTRIES
Whats left of the i18n module can be imported with:
from pygal_maps_world import i18n
'''
#获取两个字母的国别码
from pygal_maps_world.i18n import COUNTRIES
def get_country_code(country_name):
    for code,name in COUNTRIES.items():
        if name==country_name:
            return code
        return None

Population.py

import json
from Country_codes import get_country_code
#提取相关数据
filename='population_data.json'
with open(filename) as f:
    pop_data=json.load(f) #json.load()将数据转换为Python能够处理的格式并存储在pop_data中
    for pop_dict in pop_data:
        #获得每个国家2010年的人口数量
        if pop_dict['Year']=='2010':
            country_name=pop_dict['Country Name']
            population=int(float(pop_dict['Value']))#先将字符串转换为浮点数,再将浮点数转换为整数
            code=get_country_code(country_name)  #获得国家的国别码
            if code:
                print(code+':'+str(population))
            else:
                print('ERROR-'+country_name)

Python将CSV文件如何转JSON文件

CSV文件:CSV(Comma-Separated Values,逗号分隔的值)是一种简单、实用的文件格式,用于存储和表示包括文本、数值等各种类型的数据。CSV 文件通常以 .csv 作为文件扩展名。这种文件格式的一个显著特点是:文件内的数据以逗号 , 分隔,呈现一个表格形式。CSV 文件已广泛应用于存储、传输和编辑数据。

JSON文件:JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation),JSON是轻量级的文本数据交换格式 JSON 独立于语言:JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。

实现方法

import json

f = open("D:/文件/资料/GT.csv", "r", encoding='GB2312') # csv文件的路径
data_lines = f.readlines()
f.close()
data_lines.pop(0)

values = []
for line in data_lines:
    line = line.replace("\n", "") 
    values.append(line.split(","))
# print(ls)

# json文件为键值对,keys为左侧键
keys = ["stamp_sec", "obj_stamp_sec", "frame_num", "source", "id", "track_id", "lane_id", "center_x", "center_y", "center_z", "closest_point_x",
        "closest_point_y", "closest_point_z", "closest_box_x", "closest_box_y", "closest_box_z", "front_bumper_x",
        "front_bumper_y", "front_bumper_z", "rear_bumper_x", "rear_bumper_y", "rear_bumper_z", "move_status", "cut_in", "cut_out",
        "cipv", "velocity_x", "velocity_y", "velocity_z", "project_velocity_x", "project_velocity_y", "project_velocity_z",
        "acceleration_x", "acceleration_y", "acceleration_z", "project_acceleration_x", "project_acceleration_y",
        "project_acceleration_z", "angular_velocity", "obj_yaw", "direction_x", "direction_y", "direction_z", "height", "length",
        "width", "is_radar_matching", "is_tracked", "radar_velocity_x", "radar_velocity_y", "radar_velocity_z", "type",
        "type_confidence", "pose_pos_x", "pose_pos_y", "pose_pos_z", "roll", "pitch", "yaw", "car_twist", "car_acceleration",
        "reserve_score", "reserve_info", "anchor_x", "anchor_y", "anchor_z", "lidar_name"]

fw = open("D:/文件/资料/a.json", "w", encoding='utf-8') # 创建json文件的路径

# 利用for循环遍历,形成键值对
dict_re = [dict(zip(keys, row)) for row in values] if values else None 
# print(dict_re)
a = json.dumps(dict_re, indent=4, ensure_ascii=False)
print(a)
fw.write(a)
fw.close()

到此这篇关于Python3处理json文件和csv文件的文章就介绍到这了,更多相关Python处理json和csv内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pytorch中expand()的使用(扩展某个维度)

    Pytorch中expand()的使用(扩展某个维度)

    这篇文章主要介绍了Pytorch中expand()的使用(扩展某个维度),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • Python机器学习应用之基于LightGBM的分类预测篇解读

    Python机器学习应用之基于LightGBM的分类预测篇解读

    这篇文章我们继续学习一下GBDT模型的另一个进化版本:LightGBM,LigthGBM是boosting集合模型中的新进成员,由微软提供,它和XGBoost一样是对GBDT的高效实现,原理上它和GBDT及XGBoost类似,都采用损失函数的负梯度作为当前决策树的残差近似值,去拟合新的决策树
    2022-01-01
  • NumPy随机数生成函数的多种实现方法

    NumPy随机数生成函数的多种实现方法

    NumPy的numpy.random模块提供了多种随机数生成函数,包括基础随机数生成、概率分布抽样和随机排列,这些函数适用于各种场景,下面就来详细的介绍一下,感兴趣的可以了解一下
    2026-01-01
  • python数据分析近年比特币价格涨幅趋势分布

    python数据分析近年比特币价格涨幅趋势分布

    这篇文章主要为大家介绍了python分析近年来比特币价格涨幅趋势的数据分布,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • 使用Python实现跳帧截取视频帧

    使用Python实现跳帧截取视频帧

    这篇文章主要介绍了使用Python实现跳帧截取视频帧,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • Pandas中datetime数据类型的使用

    Pandas中datetime数据类型的使用

    本文主要介绍了Pandas中datetime数据类型的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • Python实现在PDF中插入单图像水印和平铺图像水印

    Python实现在PDF中插入单图像水印和平铺图像水印

    这篇文章主要为大家详细介绍了如何使用Python实现在PDF中插入单图像水印和平铺图像水印,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • Python的f-string使用技巧

    Python的f-string使用技巧

    Python很早就引入了一种称为 f-string 的字符串格式化方法,它代表格式化字符串字面值,本文主要介绍了Python的f-string使用技巧,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • Python实现微信中找回好友、群聊用户撤回的消息功能示例

    Python实现微信中找回好友、群聊用户撤回的消息功能示例

    这篇文章主要介绍了Python实现微信中找回好友、群聊用户撤回的消息功能,结合实例形式分析了Python基于微信itchat模块实现针对撤回消息的查看功能相关操作技巧,需要的朋友可以参考下
    2019-08-08
  • Python列表1~n输出步长为3的分组实例

    Python列表1~n输出步长为3的分组实例

    这篇文章主要介绍了Python列表1~n输出步长为3的分组实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05

最新评论