如何将变量添加到json

时间:2018-05-15 20:24:15

标签: python json

我试图将传递给函数的变量添加到json但我一直收到错误,我使用了这个问题here,这是我的代码:

#!/usr/bin/env python

import requests

def interact(token):

    token_string = str(token)
    print token_string

    headers = {{'X-Username':'user','X-Token':'{0}'}}.format(token_string)

    print "token:"
    print headers


# main
login()
get_token = login()
interact(get_token)

这是错误:

TypeError: unhashable type: 'dict'

2 个答案:

答案 0 :(得分:1)

您必须将format应用于字符串,而不是包含字符串的字典:

    headers = {
      {'X-Username':'user',
       'X-Token':'{0}'.format(token_string)
      }
    }

而且,您无法将dict放入set;您必须使用list

headers = [
      {'X-Username':'user',
       'X-Token':'{0}'.format(token_string)
      }
]

答案 1 :(得分:1)

您收到该错误是因为您正试图将dict放入Set中。

考虑:

foo = {"a"} # type(foo) <class 'set'>
foo.add({"b": 1}) # throws unhashable error
{"a", {"b": 1}} # equivalent to the above 2 lines

这是一个相当常见的错误,因为set literals和dict literals都使用花括号:

bar = {"a", 1, "b", 2} # oops! 4 element set instead of dict with 2 k/v pairs