отправка объекта json в функцию python - PullRequest
0 голосов
/ 11 февраля 2019

Мне нужно передать объект JSON в отдельную функцию в python

import json

userList = [{username: 'userName', email: 'email'}]

listString = json.dumps(userList)
print(json.loads(listString))

, это напечатает тот же объект: [{username: 'userName', email: 'email'}]

Я знаю, что невозможно передатьJSON-объект непосредственно в другую функцию, поэтому я превращаю его в строку и пытаюсь распаковать его в новой функции

testFunction(listString)

def testFunction(oldList):
    print(json.dumps(oldList))

, это выведет [{'username': 'userName', 'email': 'email'}], но не позволит мне вернутьсяобъект из новой функции.Что мне нужно сделать, чтобы это исправить?

def testFunction(oldList):
    newList = json.loads(oldList)
    # code to append to newList

    return newList


Response: null

1 Ответ

0 голосов
/ 11 февраля 2019

Это похоже на домашнее задание - вы должны четко указать это в своем вопросе.

Я знаю, что невозможно передать объект JSON непосредственно другой функции

Нет "объекта JSON", у вас есть список Python, который содержит словарь Python.json.dumps превращает этот список в строку JSON, а json.loads (string) берет эту строку и возвращает список Python.

Вы можете передать свой userList в функцию.Или, если это домашняя работа, и вам необходимо передать строку JSON, вы сначала используете json.dumps для преобразования своего списка в строку JSON:

import json

userList = [{"username": 'userName', "email": 'email'}]

listString = json.dumps(userList)

def foo(jsonstring):
  lst = json.loads(jsonstring)
  lst[0]["username"] = "Alex"
  return lst

newList = foo(listString)

print(newList)

Вывод:

[{'username': 'Alex', 'email': 'email'}]

После редактирования я вижу проблему в вашем коде.Ты видишь, что ты сделал?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...