Mon*_*ona 9 python json python-3.x
我有一个 json 文件,我在 python 中用作字典。json 文件真的很长,有 10k+ 条记录。我需要用“id”的值替换“iscategorical”中的 $home 部分。进行更改后,我想保存此文件,以便我可以再次将其用作字典。感谢您的帮助。这是一个示例:
{
"maps": [
{
"id": "xyzp",
"iscategorical": "/u/$home/app/home"
},
{
"id": "trtn",
"iscategorical": "/u/app/$home/user"
}
]}
Run Code Online (Sandbox Code Playgroud)
小智 18
我知道您能够成功加载文件,您要做的就是替换字符串并将结构再次保存到文件中。
为此,我们可以遍历数据中的字典列表,并item['iscategorical']通过替换$home为 的值来修改 的值item['id']。
然后我们可以将修改后的结构转储回(一个新的)json 文件。
import json
with open('data.json') as f:
data = json.load(f)
for item in data['maps']:
item['iscategorical'] = item['iscategorical'].replace('$home', item['id'])
with open('new_data.json', 'w') as f:
json.dump(data, f)
Run Code Online (Sandbox Code Playgroud)
您的问题似乎类似于 - Parsing Values from a JSON file? 。但是对于您的情况,下面的代码片段应该有效。
import json
with open('idata.json') as infile:
data = json.load(infile)
for elem in data["maps"]:
elem['iscategorical']=elem['iscategorical'].replace('$home',elem['id'])
with open('odata.json', 'w') as outfile:
json.dump(data, outfile)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33594 次 |
| 最近记录: |