You are viewing a single comment's thread from:

RE: 请MSSQL高手指点一下JSON的问题

in #cn7 years ago

@oflyhigh 你的SQL没有问题,可能是你的python脚本有点小问题。

如果运行以下程序,会看到和你所说一样的输出:

cur.execute("SELECT title, JSON_QUERY(json_metadata, '$.tags') as tags FROM Comments WHERE author= 'oflyhigh' and title like N'%区块链%'")
rows = cur.fetchall()
for row in rows: print(row)

其实,问题就出在哪个输出语句了,稍作改动:

for row in rows: print(row[0],row[1])

这是输出结果:

我也曾经文青过,18年前写的小诗 《花儿》,学laoyao,咱也放到区块链上 ["literature","poem","cn"]
使用PHP查询STEEM区块链 / Using PHP to query the STEEM blockchain ["cn","cn-programming","steemdev","php","steem"]
珍惜羽毛 / STEEM区块链忠实的记录你的操作 / 获得共同操作账户的真实操作者 ["cn","cn-programming","steem","steemit"]
YY 一个基于STEEM区块链的聊天工具 ["cn","cn-programming"]
STEEM区块链忠实的记录你的言行&操作 ["cn"]

Sort:  

谢谢答复
不过你这样只不过是把tags列表当成字符串输出了 😄,尽管看起来是列表的样子
我想要的是一个列表

你试着输出row[1][0]试试就明白了

对MSSQL这个功能不太了解。不过从数据库那里不应该直接返回object,因为object是和具体编程语言相关的。你想要得到json object也没问题,用下面的python code:

for row in rows: print(row[0],json.loads(row[1]),json.loads(row[1])[0])

Json.loads我帖子里写了😷

哈哈,没太注意。mssql的这个json功能不太清楚。也许就不支持直接返回列表吧。对我来说,能拿到json字符串就够了。

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.032
BTC 64266.51
ETH 3121.56
USDT 1.00
SBD 4.08