TypeError:“Tag”类型的对象不是JSON可序列化的

时间:2017-07-13 08:42:22

标签: python json firebase firebase-realtime-database firebase-admin

我正在尝试创建一个JSON对象并使用Firebase Database将其发送到python,但当我这样做时,我得到:

TypeError: Object of type 'Tag' is not JSON serializable

这是我的代码:

data = {'address': address,
    'name': name
   }

print(type(data))
sent = json.dumps(data)
result = firebase.post("/tHouse/houseTest", sent)  

json.dumps(data)错误,因为此处指出了错误。正在运行print(type(data))会返回<class 'dict'>

预先设置nameaddress

1 个答案:

答案 0 :(得分:3)

作为bs4.element.Tagaddress无法序列化为JSON。

如何处理这取决于您要在数据库中存储的标记的哪个部分。如果您只需在str()上调用Tag,则输出将包含XML / HTML标记。如果您想要标签中包含的文本,请访问.text属性,例如

from bs4 import BeautifulSoup

soup = BeautifulSoup('<address>1 Some Street Somewhere ABC 12345</address>')
address = soup.address

>>> type(address)
<class 'bs4.element.Tag'>
>>> str(address)
'<address>1 Some Street Somewhere ABC 12345</address>'
>>> address.text
u'1 Some Street Somewhere ABC 12345'

所以这可能就是你需要做的事情:

data = {'address': address.text, 'name': 'Some One'}
>>> json.dumps(data)
'{"name": "Some One", "address": "1 Some Street Somewhere ABC 12345"}'