TypeError:“标记”类型的对象不可JSON序列化

anh*_*nho 3 python json firebase firebase-realtime-database firebase-admin

我试图创建一个JSON对象并将其发送到Firebase Databaseusing 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)  
Run Code Online (Sandbox Code Playgroud)

这是有问题的,json.dumps(data)因为此处指出了错误。print(type(data))虽然运行返回<class 'dict'>

另外,nameaddress预先设定

mha*_*wke 6

作为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'
Run Code Online (Sandbox Code Playgroud)

因此,这可能是您需要做的:

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