Добавить значение переменной в строку JSON в Python

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

hostname = "machineA.host.com" 

Мне нужно добавить вышеуказанную информацию о названии хоста в следующий документ JSON –

 b"{\"Machine Name\":\"\"+hostname+\"\"}", None, True) 

Но всякий раз, когда я добавляю его выше, он вообще не работает.

Не знаете, что я здесь делаю?

  • Получать пересекающиеся строки по двум массивам 2D numpy
  • Ускорение Python
  • Python Video Framework
  • Как обернуть функцию c ++, которая принимает указатель на функцию в python с помощью SWIG
  • Как отобразить utf-8 в консоли Windows
  • PhantomJS действует иначе, чем Firefox webdriver
  • Как выявить проклятия ALT + комбинации клавиш в python
  • Pandas: конвертировать dtype 'object' в int
  • 2 Solutions collect form web for “Добавить значение переменной в строку JSON в Python”

    Вы избегаете внутренней двойной цитаты " в своей строке. Это должно быть:

     b"{\"Machine Name\":\""+hostname+"\"}", None, True) 

    В python вы также можете использовать одинарные кавычки для строк, и вам не нужно избегать двойных кавычек в одиночных кавычках

     b'{"Machine Name":"'+hostname+'"}', None, True) 

    Однако есть два лучших способа сделать это. Первый – это форматирование строки, которое вставляет переменную в строку:

     b'{"Machine Name":"%s"}' % hostname # python 2.x (old way) b'{{"Machine Name":"{0}"}}'.format(hostname) # python >= 2.6 (new way - note the double braces at the ends) 

    Следующее – с модулем Python JSON путем преобразования питона python в строку JSON

     >>> hostname = "machineA.host.com" >>> data = {'Machine Name': hostname} >>> json.dumps(data) '{"Machine Name": "machineA.host.com"}' 

    Вероятно, это предпочтительный метод, поскольку он будет обрабатывать экранирующие странные символы в имени вашего хоста и других областях, гарантируя, что у вас есть действующий JSON в конце.

    Есть ли причина, по которой вы используете bytestring

    вместо того, чтобы манипулировать строкой, считайте данные в виде структуры питона, а затем выгрузите их в json

     >>> d = {} >>> d['Machine Name'] = hostname >>> json.dumps(d) '{"Machine Name": "machineA.host.com"}' 
    Python - лучший язык программирования в мире.