我正在尝试创建一个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'>
。
预先设置name
和address
答案 0 :(得分:3)
作为bs4.element.Tag
,address
无法序列化为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"}'