使用随机自动填充JSON文件

时间:2018-03-02 02:21:56

标签: python json python-3.6

有一个具有这种视图的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')

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分: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')