python - Facebook 将不正确的数据传递给数据库

标签 python database postgresql facebook facebook-graph-api

我需要帮助构建一个应用程序,让我使用 python3 将 facebook 公共(public)数据存储在数据库中,结果来自 Facebook 的所有数据都变成了奇怪的字符串 Weird String而不是 python 输出中显示的值 enter image description here

我的代码

host = "https://graph.facebook.com/v3.0"
path = "/me"
params = urllib.parse.urlencode({
"access_token": ACCESS_TOKEN
})

url = "{host}{path}?{params}".format(host = host, path = path, params = 
params)
print(url)
resp = urllib.request.urlopen(url).read()

print(resp)

    params = urllib.parse.urlencode({
"fields": 'name',
"access_token": ACCESS_TOKEN
})
url = "{host}{path}?{params}".format(host = host, path = path, params = 
params)
uName = urllib.request.urlopen(url).read()
pprint.pprint(uName)


params = urllib.parse.urlencode({
"fields": 'id',
"access_token": ACCESS_TOKEN
})
url = "{host}{path}?{params}".format(host = host, path = path, params = 
params)
uId = urllib.request.urlopen(url).read()
pprint.pprint(uId)


cur.execute(""
"
insert into COMPANY(ID, NAME, AGE, ADDRESS, SALARY, STRING) VALUES( % s, % 
s, % s, % s, % s, % s)
""
", (temp_id,uName,age,address,salary,uId,))
conn.commit() conn.close()

最佳答案

请注意,在您的 python 输出中,uName 实际上是二进制数据(b'stuff' 表示二进制),并且实际上是 JSON。

你需要解码它才能得到文本

uName = uName.decode('utf-8')

然后,如果需要,decode the json .

关于python - Facebook 将不正确的数据传递给数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50272309/

相关文章:

postgresql - 使用 DBlink 同步 postgres 中的两个表

python - 你如何让 djangorestframework 使用格式后缀返回 xml?

python - python中的OOP编程

python - 检查 key 是否在字典中?

sql - 使用带有空值的 TO_DATE 时出现 ORA-01841

sql - 使用连接和 "ghost"引用优化 postrgeSQL 查询?

javascript - NodeJS 和 Mysql 查询获取

postgresql - 有没有一种方法可以在 postgres 12 中对一个巨大的表执行 ALTER Column 而无需等待一生?

python - 使用来自 CSV 的输入从 Python 运行动态查询

java - 通过 JDBC 恢复包含 "COPY"的 pg_dump 文件