Я создал простой скрипт на python, который создает файл JSON и загружает его в S3, используя json и boto3.
В данный момент я работаю над устройством чтения, которое открывает файл и интуитивно понятным образом просматривает ключи 1 и значение 1, позволяя пользователю редактировать их и сохранять в исходном файле.
Я исследовал клик, изучил пользовательские вводы, итерации и циклы while, и действительно углубился в кроличью нору, и мне нужно какое-то общее направление, куда идти, если я хочу, чтобы CLI предлагал пользователям редактировать значенияв коде JSON вы можете видеть, где я сейчас нахожусь.
СКРИПТ ПИСАТЕЛЯ:
import json
import boto3
data = [
{
"first_name": "Thor",
"last_name": "Odinsson",
"raw_date": "2016-01-05",
"birthday": "10000BC"
},
{
"first_name": "Odin",
"last_name": "Allfather",
"raw_date": "2018-07-11",
"birthday": "30000BC"
}
]
s3 = boto3.resource('s3')
obj = s3.Object('mjolnir','mjolnir.json')
obj.put(Body=json.dumps(data, indent=4))
СКРИПТ ЧИТАТЕЛЯ / РЕДАКТОРА:
import json
import boto3
s3 = boto3.client('s3')
data = s3.get_object(Bucket='mjolnir', Key='mjolnir.json')
contents = data['Body'].read().decode()
sep = " "
with open ("mjolnir.json", "rb+") as fd:
seekpos = fd.tell()
line = fd.readline()
while(line):
print(line)
next = input(">>> ")
if next == ":q":
break
if next:
values = line.split(sep)
newval = values[0] + sep + next + '\n'
if len(newval) == len(line):
fd.seek(seekpos)
fd.write(newval)
fd.flush()
os.fsync(fd)
else:
remaining = fd.read()
fd.seek(seekpos)
fd.write(newval + remaining)
fd.flush()
os.fsync(fd)
fd.seek(seekpos)
line = fd.readline()
seekpos = fd.tell()
line = fd.readline()
Вмой терминал показывает только мне: b '[\ n'