使用随机自动填充JSON文件

问题描述 投票:1回答:2

有一个JSON文件具有这种视图

{
"A": 
{
   "B": 0, 
   "C": 1
},
"D": 
{
   "E": 2, 
   "F": 4
}
}

我需要在程序读取文件后,结构“A”和“D”的每个字段从某个范围给出一个随机值以获得一个新的JSON文件,例如

 {
"A": 
{
   "B": 70, 
   "C": 25
},
"D": 
{
   "E": 15, 
   "F": 3
}
}

我写了一个从文件读取,但这里是如何让每个字段从一定范围获得一个值,我不知道

import json
from pathlib import Path
path = Path('newtest.json')
data =json.loads(path.read_text(encoding='utf-8'))
data['A']={'B':50,'C':50}
path.write_text(json.dumps(data),
encoding='utf-8')

在这段代码中,我手动设置了字段值,但是如果有很多字段,我不能手动设置每个值,如何自动设置它并用值传递它。其范围内每个字段的值?

python json python-3.6
2个回答
0
投票

那么,这是什么?一个词典字典,你有一个键和子键,你想在一定范围内更改子键的值,对吗?所以{A:{B:70}}可以,假设键1:100,任意重新分配给{A:{B:42}},对吗?

因此,假设您知道如何在函数中将{A:{B:70}}更改为{A:{B:35}},您将如何用1:100范围内的随机数替换35?您可以在标准库中查找函数以从范围中返回随机数,对吗?


0
投票

你的意思是这个吗?

import json
import random
from pathlib import Path
path = Path('newtest.json')
data =json.loads(path.read_text(encoding='utf-8'))
for firstKey, firstValue in data.items():
    for key, value in firstValue.items():
        firstValue[key] = random.randrange(0, 100)
    data[firstKey] = firstValue
path.write_text(json.dumps(data),
encoding='utf-8')
© www.soinside.com 2019 - 2024. All rights reserved.