在多个 json 个文件的末尾添加文本
Add text to the end of multiple json files
我对编程很陌生,所以请原谅任何糟糕的解释。基本上我有 1000 json 个文件,所有这些文件都需要在末尾添加相同的文本。这是一个例子:
这是现在的样子:
{"properties": {
"files": [
{
"uri": "image.png",
"type": "image/png"
}
],
"category": "image",
"creators": [
{
"address": "wallet address",
"share": 100
}
]
}
}
我想看起来像这样:
{"properties": {
"files": [
{
"uri": "image.png",
"type": "image/png"
}
],
"category": "image",
"creators": [
{
"address": "wallet address",
"share": 100
}
]
},
"collection": {"name": "collection name"}
}
我已尽最大努力添加和更新,但它总是告诉我没有要添加的属性。我也不知道我在做什么。
这会很尴尬,但这是我尝试过但失败了的方法。
import json
entry= {"collection": {"name": "collection name"}}
for i in range((5)):
a_file = open("./testjsons/" + str(i) + ".json","r")
json_obj = json.load(a_file)
print(json_obj)
json_obj["properties"].append(entry)
a_file = open(str(i) + ".json","w")
json.dump(json_obj,a_file,indent=4)
a_file.close()
json.dump(a_file, f)
错误代码:json_obj["properties"].append(entry)
AttributeError: 'dict' 对象没有属性 'append'
JSON,和XML一样,是一种特殊的数据格式。您应该始终 解析 数据并尽可能将其作为 JSON 使用。这不同于您将 'add to the end' 或 'append' 文本的纯文本文件。
Python 中有许多 json 解析库,但您可能希望使用内置于标准 Python 中的 json
encoder图书馆。对于文件 myfile.json
,您可以:
import json
with open('myfile.json`, 'r') as f:
myfile = json.load(f) # read the file into a Python dict
myfile["collection"] = {"name": "collection name"} # here you're adding the "collection" field to the end of the Python dict
# If you want to add "collection" inside "properties", you'd do something like
#. myfile["properties"]["collection"] = {"name": "collection name"}
with open('myfile.json', 'w') as f:
json.dump(myfile, f) # save the modified dict into the json file
您不使用 append()
添加到字典中。您可以分配给键以添加单个条目,或使用 .update()
合并字典。
import json
entry= {"collection": {"name": "collection name"}}
for i in range((5)):
with open("./testjsons/" + str(i) + ".json","r") as a_file:
a_file = open("./testjsons/" + str(i) + ".json","r")
json_obj = json.load(a_file)
print(json_obj)
json_obj.update(entry)
with open(str(i) + ".json","w") as a_file:
json.dump(json_obj,a_file,indent=4)
我对编程很陌生,所以请原谅任何糟糕的解释。基本上我有 1000 json 个文件,所有这些文件都需要在末尾添加相同的文本。这是一个例子:
这是现在的样子:
{"properties": {
"files": [
{
"uri": "image.png",
"type": "image/png"
}
],
"category": "image",
"creators": [
{
"address": "wallet address",
"share": 100
}
]
}
}
我想看起来像这样:
{"properties": {
"files": [
{
"uri": "image.png",
"type": "image/png"
}
],
"category": "image",
"creators": [
{
"address": "wallet address",
"share": 100
}
]
},
"collection": {"name": "collection name"}
}
我已尽最大努力添加和更新,但它总是告诉我没有要添加的属性。我也不知道我在做什么。
这会很尴尬,但这是我尝试过但失败了的方法。
import json
entry= {"collection": {"name": "collection name"}}
for i in range((5)):
a_file = open("./testjsons/" + str(i) + ".json","r")
json_obj = json.load(a_file)
print(json_obj)
json_obj["properties"].append(entry)
a_file = open(str(i) + ".json","w")
json.dump(json_obj,a_file,indent=4)
a_file.close()
json.dump(a_file, f)
错误代码:json_obj["properties"].append(entry) AttributeError: 'dict' 对象没有属性 'append'
JSON,和XML一样,是一种特殊的数据格式。您应该始终 解析 数据并尽可能将其作为 JSON 使用。这不同于您将 'add to the end' 或 'append' 文本的纯文本文件。
Python 中有许多 json 解析库,但您可能希望使用内置于标准 Python 中的 json
encoder图书馆。对于文件 myfile.json
,您可以:
import json
with open('myfile.json`, 'r') as f:
myfile = json.load(f) # read the file into a Python dict
myfile["collection"] = {"name": "collection name"} # here you're adding the "collection" field to the end of the Python dict
# If you want to add "collection" inside "properties", you'd do something like
#. myfile["properties"]["collection"] = {"name": "collection name"}
with open('myfile.json', 'w') as f:
json.dump(myfile, f) # save the modified dict into the json file
您不使用 append()
添加到字典中。您可以分配给键以添加单个条目,或使用 .update()
合并字典。
import json
entry= {"collection": {"name": "collection name"}}
for i in range((5)):
with open("./testjsons/" + str(i) + ".json","r") as a_file:
a_file = open("./testjsons/" + str(i) + ".json","r")
json_obj = json.load(a_file)
print(json_obj)
json_obj.update(entry)
with open(str(i) + ".json","w") as a_file:
json.dump(json_obj,a_file,indent=4)