解析JSON查找值并追加随机数?

2024-09-30 03:21:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有login和integer valuer的JSON文件(一些结果),如下所示:

[
        {
           "name":"Tamara",
           "results":"434.545.234.664"
        },
        {
           "name":"Ted",
           "results":"434.545.234.664"
        }
]

我需要接收用户登录名(name),在JSON中查找插入的名称。如果已经存在,请在“结果”中添加一些数字。在

例如:如果我输入“Ted”,一些数字将被附加到Ted的结果中,如下所示:"results":"434.545.234.664+4343}"

如果名称不存在,请使用以下内容添加新记录:

^{pr2}$

在里面。在

我的代码,但没用:

with open('/Users/users_db.json') as jsonfile:
    user_name = ''
    while user_name == '':
        data = json.load(jsonfile)
        user_name = input('Your name: ')
        for user in data:
            if user_name in user['name']:
                print('Old user')
                break
            else:
                print('New user')

Tags: namein名称jsondatalogin数字integer
2条回答

这里有无数种可能的方法来编写您的问题:

import json
import random
import names

random.seed(1)

data = [
    {
        "name": "Tamara",
        "results": "434.545.234.664"
    },
    {
        "name": "Ted",
        "results": "434.545.234.664"
    }
]


def foo(lst, name):
    some_number = random.randint(0, 4343)
    values = filter(lambda d: d["name"] == name, lst)

    if values:
        for v in values:
            v["results"] += "+{0}".format(some_number)
    else:
        lst.append({
            "name": name,
            "results": some_number
        })

for name in ["Tamara", "Ted"] + [names.get_first_name() for i in range(8)]:
    foo(data, name)

print(data)

这个模块将使用names模块生成随机测试名称。在

不过,一个建议是,花点时间阅读帮助页面,尤其是名为"What topics can I ask about here?"和{a3}的部分。更重要的是,请阅读the Stack Overflow question checklist。您可能还想了解Minimal, Complete, and Verifiable Examples

你可以这样parse your json

import json

with open('yourJsonFile.json') as example_data:
    data = json.load(example_data)

现在需要使用data来找到您需要的任何东西。例如,要访问您可以

^{pr2}$

其余的取决于你在哪里/如何存储这些名称,并检查它们是否已经存在。在

最后,要添加新值,可以使用append

相关问题 更多 >

    热门问题