JSON常见用法:json.load()、json.loads()、json.dump()、json.dumps()

JSON的定义

  • JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)

  • JSON 是轻量级的文本数据交换格式

  • JSON 独立于语言

  • JSON 具有自我描述性,更易理解

常用的方法

  1. json.load()从json文件中读取数据

  2. json.loads()将str类型的数据转换为dict类型

  3. json.dumps()将dict类型的数据转成str

  4. json.dump()将数据以json的数据类型写入文件中

代码示例:

  1. json.load()从json文件中读取数据
with open('text.json','r',encoding='utf-8') as f :

print(json.load(f))

运行结果:

{'user_id': '66', 'movie_id': '357', 'rating': '5', 'time': '2009'}
  1. json.loads()将str类型的数据转换为dict类型
import json

name_emb = {'user_id': '66', 'movie_id': '357', 'rating': '5', 'time': '2009'}

jsDumps = json.dumps(name_emb)

jsLoads = json.loads(jsDumps)

print(name_emb)
print(jsDumps)
print(jsLoads)

print(type(name_emb))
print(type(jsDumps))
print(type(jsLoads))

运行结果:

{'user_id': '66', 'movie_id': '357', 'rating': '5', 'time': '2009'}
{"user_id": "66", "movie_id": "357", "rating": "5", "time": "2009"}
{'user_id': '66', 'movie_id': '357', 'rating': '5', 'time': '2009'}
<class 'dict'>
<class 'str'>
<class 'dict'>
  1. json.dump()将dict类型的数据转换成str,如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。
import json

name_emb = {'user_id': '66', 'movie_id': '357', 'rating': '5', 'time': '2009'}

jsObj = json.dumps(name_emb)

print(name_emb)
print(jsObj)

print(type(name_emb))
print(type(jsObj))

运行结果:

{'user_id': '66', 'movie_id': '357', 'rating': '5', 'time': '2009'}
{"user_id": "66", "movie_id": "357", "rating": "5", "time": "2009"}
<class 'dict'>
<class 'str'>
  1. json.dump()将数据以json的数据类型写入文件中
import json
name = input("战胜疫情")
filename = 'name.json'
with open(filename, 'w') as f:
    json.dump(name, f)
    print("中国加油, " + name + "!")

运行结果:

中国加油,战胜疫情!
<think>好的,用户之前问过在GIS中如何批量替换属性表中的字段值,现在他接着问在ArcGIS 10.8中具体怎么做。我需要提供详细的步骤,但要注意用户可能对ArcGIS不太熟悉,所以步骤要清晰,避免使用过多专业术语。 首先,回忆ArcGIS 10.8的界面和工具,特别是字段计算器的使用,因为这是批量替换的主要方法。用户可能分不清字段名和字段值的替换,所以需要分开说明。另外,用户可能需要知道如何用Python脚本处理更复杂的情况,比如条件替换或正则表达式。 接下来,考虑用户可能的实际场景。他们可能在处理地理数据时遇到了需要更新大量记录的情况,比如修正错误的数据或统一数据格式。用户可能没有备份数据的习惯,所以需要提醒他们在操作前备份,避免数据丢失。 还要注意用户可能的误操作,比如数据类型不匹配或语法错误,这些都需要在注意事项中强调。另外,高级技巧部分可以满足有一定经验的用户的需求,但需要说明适用版本,比如ArcGIS Pro才支持正则表达式,而10.8可能不支持,避免误导。 最后,检查回答的结构是否清晰,分步骤说明,每个步骤有具体的操作和示例,比如字段计算器的截图位置和Python代码示例。确保语言简洁,避免冗余,同时覆盖所有关键点,如数据备份、验证和性能优化。</think>以下是针对ArcGIS 10.8的字段批量替换详细操作指南(分步骤+示例): 一、字段名称批量修改 1. **单个字段重命名** - 打开属性表 → 右键字段标题 → 选择`字段`(或通过目录树右键要素类→属性→字段选项卡) - 选中目标字段 → 修改`别名`(临时显示名)或`名称`(物理字段名) - ✖️ 注意:直接修改物理字段名可能引发数据关联问题,建议优先使用别名 2. **批量字段名重构**(需ArcToolbox) - 路径:`ArcToolbox > 数据管理工具 > 字段 > 删除字段` + `添加字段` - 组合操作: 1. 先用`添加字段`创建新字段 2. 用`计算字段`将旧字段值复制到新字段 3. 最后用`删除字段`移除旧字段 二、字段值批量替换(核心功能) 1. **字段计算器基础操作** - 右键字段标题 → `字段计算器` - 选择`Python`解析器 → 勾选`显示代码块` - 示例:将NULL值替换为0 ```python # 预逻辑脚本代码 def replace_null(value): return 0 if value is None else value # 表达式 replace_null(!目标字段!) ``` 2. **条件替换模板** - 示例:道路等级分类 ```python # 表达式(直接写入下方计算框) "RoadClass" = def classify(speed): if speed >= 120: return "高速" elif speed >= 80: return "快速" else: return "普通" classify(!设计时速!) ``` 3. **跨字段批量更新** - 示例:合并地址信息 ```vbscript [完整地址] = [省份] & [城市] & [街道] ``` (使用VB脚本语法时需用`&`连接符) 三、高级批量替换技巧 1. **使用选择集过滤** - 先通过`按属性选择`定位目标记录 - 在字段计算器中勾选`仅更新所选要素` 2. **游标脚本批处理** ```python import arcpy fc = r"C:\Data\roads.shp" fields = ["Field1", "Field2"] with arcpy.da.UpdateCursor(fc, fields) as cursor: for row in cursor: if row[0] == "旧值": row[1] = "新值" # 修改第二个字段的值 cursor.updateRow(row) ``` (保存在Python窗口或脚本工具中运行) 四、注意事项 1. **锁定问题**:确保要素类未被其他程序占用 2. **版本限制**:对文件地理数据库(.gdb)支持完整操作,Shapefile字段名修改受限 3. **撤销机制**:字段计算操作不可逆,建议: - 操作前备份数据 - 新建测试字段验证逻辑 - 使用`版本化编辑`(针对企业级地理数据库) 五、特殊场景处理 1. **日期字段格式化**: ```python !date_field!.strftime('%Y-%m-%d') # 转换为标准日期格式 ``` 2. **几何字段计算**: ```python !Shape!.centroid.X # 提取要素中心点X坐标 ``` 操作验证建议: 1. 统计替换数量:右键字段 → `统计`查看值分布 2. 空间验证:对关键修改记录创建书签定位 3. 属性查询:`按属性选择`验证替换条件准确性 附:常用快捷操作 - 快速定位字段:属性表顶部搜索框输入字段名 - 批量计算快捷键:Alt+Shift+C打开字段计算器 - 即时验证:在属性表直接编辑单元格测试(需开启编辑会话)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值