使用Python替换JSON文件中的单词
smpl.json文件:使用Python替换JSON文件中的单词,python,json,Python,Json,smpl.json文件: [ { "add":"dtlz", "emp_details":[ [ "Shubham", "ksing.shubh@gmail.com", "intern" ], [ "Gaurav", "gaurav.singh@cobol.in",
[
{
"add":"dtlz",
"emp_details":[
[
"Shubham",
"ksing.shubh@gmail.com",
"intern"
],
[
"Gaurav",
"gaurav.singh@cobol.in",
"developer"
],
[
"Nikhil",
"nikhil@geeksforgeeks.org",
"Full Time"
]
]
}
]
Python文件:
import json
with open('smpl.json', 'r') as file:
json_data = json.load(file)
for item in json_data["emp_details"]:
if item[''] in ['Shubham']:
item[''] = 'Indra'
with open('zz_smpl.json', 'w') as file:
json.dump(json_data, file, indent=4)
因为我的密码有问题。任何帮助都会很好
期待您的帮助。提前感谢 您的代码有两个问题 首先,JSON包含一个数组作为根。因此,您需要获取第一项的
emp\u详细信息
属性:
for item in json_data[0]["emp_details"]:
然后在item
变量中,需要检查索引为零的项:
if item[0] in ['Shubham']:
以下是完整的工作代码:
import json
with open('smpl.json', 'r') as file:
json_data = json.load(file)
for item in json_data[0]["emp_details"]:
if item[0] in ['Shubham']:
item[0] = 'Indra'
with open('zz_smpl.json', 'w') as file:
json.dump(json_data, file, indent=4)
正在工作的repl.it链接:您的代码有两个问题 首先,JSON包含一个数组作为根。因此,您需要获取第一项的
emp\u详细信息
属性:
for item in json_data[0]["emp_details"]:
然后在item
变量中,需要检查索引为零的项:
if item[0] in ['Shubham']:
以下是完整的工作代码:
import json
with open('smpl.json', 'r') as file:
json_data = json.load(file)
for item in json_data[0]["emp_details"]:
if item[0] in ['Shubham']:
item[0] = 'Indra'
with open('zz_smpl.json', 'w') as file:
json.dump(json_data, file, indent=4)
工作repl.it链接:这里有一个更通用的解决方案,最外层的json数组可以有多个条目(字典):
下面是一个更通用的解决方案,最外层的json数组可以有多个条目(字典):
首先,您需要了解列表/数组和映射数据结构,以及它们是如何用JSON表示的。说真的,为了使用JSON,您必须理解这些数据结构 空数组a1
a1 = []
带3个整数的数组
a2 = [1, 2, 3]
要解决第二个值
a2[0] is 1st value
a2[1] is 2nd value
在python中,将a2子集为第二和第三个值
a3 = a2[1:]
映射/dict是键:值对的容器。
和空映射(在python中称为dict)
2对映射
d2 = { 'name' : 'Chandra Gupta Maurya' , 'age' : 2360 }
d3 = { 'street' : 'ashoka' , 'location' : 'windsor place' , 'city' : 'delhi' }
这样的价值
d2['name'] is 'Chandra Gupta Maurya'
两张地图的数组。在python(和javaScript)中执行此操作时
您正在等效地这样做:
ad1 = [
{ 'name' : 'Chandra Gupta Maurya' , 'age' : 2360 } ,
{ 'street' : 'ashoka' , 'location' : 'windsor place' , 'city' : 'delhi' }
]
因此,ad1[0]
是
{ 'name' : 'Chandra Gupta Maurya' , 'age' : 2360 }
显然,“emp_details”位于数组的0位置
json_data[0]['emp_details']
json_数据[0]['emp_details']
本身就是映射数组的关键
>>> json.dumps (json_data[0]["emp_details"] , indent=2)
产生
'[\n [\n "Shubham",\n "ksing.shubh@gmail.com",\n "intern"\n ],\n [\n "Gaurav",\n "gaurav.singh@cobol.in",\n "developer"\n ],\n [\n "Nikhil",\n "nikhil@geeksforgeeks.org",\n "Full Time"\n ]\n]'
[
[
"Shubham",
"ksing.shubh@gmail.com",
"intern"
],
[
"Gaurav",
"gaurav.singh@cobol.in",
"developer"
],
[
"Nikhil",
"nikhil@geeksforgeeks.org",
"Full Time"
]
]
及
产生
'[\n [\n "Shubham",\n "ksing.shubh@gmail.com",\n "intern"\n ],\n [\n "Gaurav",\n "gaurav.singh@cobol.in",\n "developer"\n ],\n [\n "Nikhil",\n "nikhil@geeksforgeeks.org",\n "Full Time"\n ]\n]'
[
[
"Shubham",
"ksing.shubh@gmail.com",
"intern"
],
[
"Gaurav",
"gaurav.singh@cobol.in",
"developer"
],
[
"Nikhil",
"nikhil@geeksforgeeks.org",
"Full Time"
]
]
所以,
>>> json_data[0]["emp_details"][1]
['Gaurav', 'gaurav.singh@cobol.in', 'developer']
那么您可能希望进行替换
>>> json_data[0]["emp_details"][1][2] = 'the rain in maine falls plainly insane'
>>> json_data[0]["emp_details"][1][1] = "I'm sure the lure in jaipur pours with furore"
>>> print ( json.dumps (json_data, indent=2) )
产生
[
{
"add": "dtlz",
"emp_details": [
[
"Shubham",
"ksing.shubh@gmail.com",
"intern"
],
[
"Gaurav",
"I'm sure the lure in jaipur pours with furore",
"the rain in maine falls plainly insane"
],
[
"Nikhil",
"nikhil@geeksforgeeks.org",
"Full Time"
]
]
}
]
首先,您需要了解列表/数组和映射数据结构,以及它们是如何用JSON表示的。说真的,为了使用JSON,您必须理解这些数据结构 空数组a1
a1 = []
带3个整数的数组
a2 = [1, 2, 3]
要解决第二个值
a2[0] is 1st value
a2[1] is 2nd value
在python中,将a2子集为第二和第三个值
a3 = a2[1:]
映射/dict是键:值对的容器。
和空映射(在python中称为dict)
2对映射
d2 = { 'name' : 'Chandra Gupta Maurya' , 'age' : 2360 }
d3 = { 'street' : 'ashoka' , 'location' : 'windsor place' , 'city' : 'delhi' }
这样的价值
d2['name'] is 'Chandra Gupta Maurya'
两张地图的数组。在python(和javaScript)中执行此操作时
您正在等效地这样做:
ad1 = [
{ 'name' : 'Chandra Gupta Maurya' , 'age' : 2360 } ,
{ 'street' : 'ashoka' , 'location' : 'windsor place' , 'city' : 'delhi' }
]
因此,ad1[0]
是
{ 'name' : 'Chandra Gupta Maurya' , 'age' : 2360 }
显然,“emp_details”位于数组的0位置
json_data[0]['emp_details']
json_数据[0]['emp_details']
本身就是映射数组的关键
>>> json.dumps (json_data[0]["emp_details"] , indent=2)
产生
'[\n [\n "Shubham",\n "ksing.shubh@gmail.com",\n "intern"\n ],\n [\n "Gaurav",\n "gaurav.singh@cobol.in",\n "developer"\n ],\n [\n "Nikhil",\n "nikhil@geeksforgeeks.org",\n "Full Time"\n ]\n]'
[
[
"Shubham",
"ksing.shubh@gmail.com",
"intern"
],
[
"Gaurav",
"gaurav.singh@cobol.in",
"developer"
],
[
"Nikhil",
"nikhil@geeksforgeeks.org",
"Full Time"
]
]
及
产生
'[\n [\n "Shubham",\n "ksing.shubh@gmail.com",\n "intern"\n ],\n [\n "Gaurav",\n "gaurav.singh@cobol.in",\n "developer"\n ],\n [\n "Nikhil",\n "nikhil@geeksforgeeks.org",\n "Full Time"\n ]\n]'
[
[
"Shubham",
"ksing.shubh@gmail.com",
"intern"
],
[
"Gaurav",
"gaurav.singh@cobol.in",
"developer"
],
[
"Nikhil",
"nikhil@geeksforgeeks.org",
"Full Time"
]
]
所以,
>>> json_data[0]["emp_details"][1]
['Gaurav', 'gaurav.singh@cobol.in', 'developer']
那么您可能希望进行替换
>>> json_data[0]["emp_details"][1][2] = 'the rain in maine falls plainly insane'
>>> json_data[0]["emp_details"][1][1] = "I'm sure the lure in jaipur pours with furore"
>>> print ( json.dumps (json_data, indent=2) )
产生
[
{
"add": "dtlz",
"emp_details": [
[
"Shubham",
"ksing.shubh@gmail.com",
"intern"
],
[
"Gaurav",
"I'm sure the lure in jaipur pours with furore",
"the rain in maine falls plainly insane"
],
[
"Nikhil",
"nikhil@geeksforgeeks.org",
"Full Time"
]
]
}
]
你能用你的期望来编辑这篇文章吗?这对理解你的意图很有帮助。你能详细说明你遇到的麻烦吗?是否存在错误、错误结果等?我想搜索json文件数组中的某些单词,并用新单词替换这些单词。例如,搜索“il”并将其替换为“eel”。所以它看起来是这样的:[{“add”:“dtlz”,“emp_details”:[[“Shubham”,“ksing”。shubh@gmaeel.com“,“实习生”],[“高拉夫”,“高拉夫”。singh@cobol.in“,“开发者”],[“Nikheel”,"nikheel@geeksforgeeks.org“,“全职”]]}]你能按你的期望编辑这篇文章吗?这对理解你的意图非常有帮助。你能详细说明你遇到的麻烦吗?是否有错误、错误的结果等?我想搜索json文件数组中的某些单词,并用新单词替换这些单词。例如,搜索“il”并用“eel”替换所以它看起来是这样的:[{“add”:“dtlz”,“emp_details”:[[“Shubham”,“ksing”。shubh@gmaeel.com“,“实习生”],[“高拉夫”,“高拉夫”。singh@cobol.in“,“开发者”],[“Nikheel”,"nikheel@geeksforgeeks.org“,“全职”]]}]非常感谢!!!我可以再问一个问题吗?如何在整个文件中搜索某些单词,如“il”,然后将其更改为“eel”"? 有什么办法,我们能做到吗?我真的很抱歉,但我很想知道。你可以看看这些线程:,非常感谢!!!我能再问一个吗?如何在整个文件中搜索某些单词(如“il”)并将其更改为“eel”?有什么办法,我们能做到吗?我真的很抱歉,但我很想知道。你可以看看这些线程:,你能给我一些额外的建议来替换某些关键字(不是整个单词)?你能给我一些额外的建议来替换某些关键字(不是整个单词)?谢谢你的信息。你能给我一些关于替换数组中某些字母的建议吗?例如如何将所有数组的“il”替换为“eel”。这将是巨大的帮助!期待答案。谢谢你提供的信息。你能给我一些关于替换数组中某些字母的建议吗?例如如何将所有数组的“il”替换为“eel”。这将是巨大的帮助!期待答案。