nodejs mysql 返回json_python向mysql中存儲JSON及Nodejs取出

雖然把JSON數據存入mysql也是比較蛋疼,但是相比使用Nodejs嵌套處理多個mysql查詢并拼接返回數據也算是沒mongo時的一個折中方案了。

我使用python拼接了一個json格式的字符串,卻遇到了一些問題

1,如果把json數據轉成str存入,那么nodejs獲取數據的時候就無法使用json格式了

處理方法就是

importjson

data= json.dumps(data_dict, ensure_ascii=False)

通過dumps就可以把python的字典轉化成JSON

轉碼后的JSON數據如下,可以到http://www.bejson.com/?去驗證JSON格式是否正確

{"tongji1": [{"sum_profit": 6032, "counts": 15, "win_counts": 8, "span": "09:15:00"}, {"sum_profit": 0, "counts": 0, "win_counts": 0, "span": "09:45:00"}, {"sum_profit": 1542, "counts": 1, "win_counts": 1, "span": "10:15:00"}, {"sum_profit": 3084, "counts": 2, "win_counts": 2, "span": "10:45:00"}, {"sum_profit": 1122, "counts": 1, "win_counts": 1, "span": "11:15:00"}, {"sum_profit": 0, "counts": 0, "win_counts": 0, "span": "13:15:00"}, {"sum_profit": -738, "counts": 1, "win_counts": 0, "span": "13:45:00"}, {"sum_profit": 0, "counts": 0, "win_counts": 0, "span": "14:15:00"}, {"sum_profit": 0, "counts": 0, "win_counts": 0, "span": "14:45:00"}], "tongji2": [{"sum_profit": 11042, "counts": 20, "win_counts": 12, "span": "1"}, {"sum_profit": 0, "counts": 0, "win_counts": 0, "span": "16"}, {"sum_profit": 0, "counts": 0, "win_counts": 0, "span": "31"}, {"sum_profit": 0, "counts": 0, "win_counts": 0, "span": "6"}, {"sum_profit": 0, "counts": 0, "win_counts": 0, "span": "61"}], "tongji345": {"avg_lose": 8, "avg_win_span": 0, "avg_win": 1907, "avg_lose_span": 0, "avg_max_lose_day": 389, "avg_max_win_day": 813, "avg_trade_counts": 1}}

2,MySQLdb插入數據時的一些注意事項

sql = """insert into trades_info_f (id, data) values ('%s', '%s')""" % (id,data)

如上代碼,使用""" """避免了JSON串的內部轉義雙引號,這樣就可以存入數據庫了

3,在Nodejs端獲取json數據

exports.tongji = (req, res) ->openid=req.query.id

sql= "SELECT data from trades_info_f WHERE id = '" + id + "'"console.log sql

mysqldb.query sql, (err, rows, fields)->console.log erriferr

console.log rows

console.log rows[0].data

data= JSON.parse(rows[0].data)return res.jsonp {'status':0, 'message':'ok', 'data':data}

通過如下語句獲取的數據rows需要進一步的處理

如下的是原始數據

[ { data: '{"tongji1": [{"sum_profit": 42174, "counts": 784, "win_counts": 398, "span": "09:15:00"}, {"sum_profit": 14647, "counts": 757, "win_counts": 377, "span": "09:45:00"}, {"sum_profit": 51188, "counts": 757, "win_counts": 375, "span": "10:15:00"}, {"sum_profit": 72475, "counts": 771, "win_counts": 409, "span": "10:45:00"}, {"sum_profit": 4820, "counts": 689, "win_counts": 338, "span": "11:15:00"}, {"sum_profit": 57657, "counts": 691, "win_counts": 346, "span": "13:15:00"}, {"sum_profit": 73766, "counts": 718, "win_counts": 388, "span": "13:45:00"}, {"sum_profit": 267, "counts": 681, "win_counts": 327, "span": "14:15:00"}, {"sum_profit": 12207, "counts": 582, "win_counts": 303, "span": "14:45:00"}], "tongji2": [{"sum_profit": 469066, "counts": 5528, "win_counts": 2807, "span": "1"}, {"sum_profit": -150245, "counts": 142, "win_counts": 45, "span": "16"}, {"sum_profit": -51352, "counts": 19, "win_counts": 5, "span": "31"}, {"sum_profit": -113061, "counts": 1452, "win_counts": 751, "span": "6"}, {"sum_profit": -23535, "counts": 107, "win_counts": 48, "span": "61"}], "tongji345": {"avg_lose": 3592, "avg_win_span": 4, "avg_win": 625, "avg_lose_span": 4, "avg_max_lose_day": -2760, "avg_max_win_day": 1977, "avg_trade_counts": 41}}' } ]

rows[0].data就獲得了所需的str數據,之后使用JSON.parse()轉換為JSON數據

{"tongji1": [{"sum_profit": 42174, "counts": 784, "win_counts": 398, "span": "09:15:00"}, {"sum_profit": 14647, "counts": 757, "win_counts": 377, "span": "09:45:00"}, {"sum_profit": 51188, "counts": 757, "win_counts": 375, "span": "10:15:00"}, {"sum_profit": 72475, "counts": 771, "win_counts": 409, "span": "10:45:00"}, {"sum_profit": 4820, "counts": 689, "win_counts": 338, "span": "11:15:00"}, {"sum_profit": 57657, "counts": 691, "win_counts": 346, "span": "13:15:00"}, {"sum_profit": 73766, "counts": 718, "win_counts": 388, "span": "13:45:00"}, {"sum_profit": 267, "counts": 681, "win_counts": 327, "span": "14:15:00"}, {"sum_profit": 12207, "counts": 582, "win_counts": 303, "span": "14:45:00"}], "tongji2": [{"sum_profit": 469066, "counts": 5528, "win_counts": 2807, "span": "1"}, {"sum_profit": -150245, "counts": 142, "win_counts": 45, "span": "16"}, {"sum_profit": -51352, "counts": 19, "win_counts": 5, "span": "31"}, {"sum_profit": -113061, "counts": 1452, "win_counts": 751, "span": "6"}, {"sum_profit": -23535, "counts": 107, "win_counts": 48, "span": "61"}], "tongji345": {"avg_lose": 3592, "avg_win_span": 4, "avg_win": 625, "avg_lose_span": 4, "avg_max_lose_day": -2760, "avg_max_win_day": 1977, "avg_trade_counts": 41}}

OK,打開Postman,格式正確了

efe279303a505a372098a0133f005d53.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534969.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534969.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534969.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

17個常用經典數據可視化圖表與冷門圖表

數據可視化是創建信息圖形表示的過程。隨著可視化技術的飛速發展,可以利用強大的可視化工具選擇合適的數據可視化圖表來展示數據。以下專業人士都應該知道的一些最重要的數據可視化圖表。 常見數據可視化圖表 餅圖 餅圖是最常見和最基本的數據可視化圖表之一。餅圖…

python keyerror_盤點Python 初學者最容易犯的10大錯誤!你中招了嗎?

對于新手,初學Python時,總會遇到這樣那樣的報錯,想要弄懂Python錯誤信息的含義可能還不知道怎么做,這里列出了一些比較常見的Python報錯問題,希望對于學習Python的人能夠有些幫助。發現有很多想要學習Python卻不知道如…

mysql index sub part_mysql中的key和index 理解

mysql的key和index多少有點令人迷惑,這實際上考察對數據庫體系結構的了解的。1 key 是數據庫的物理結構,它包含兩層意義,一是約束(偏重于約束和規范數據庫的結構完整性),二是索引(輔助查詢用的)。包括primary key, unique key, fo…

【spring cloud】(六)消息總線——springcloud Bus

各位小伙伴們大家好,歡迎來到這個小扎扎的spring cloud專欄,在這個系列專欄中我對B站尚硅谷陽哥的spring cloud教程進行一個總結,鑒于 看到就是學到、學到就是賺到 精神,這波依然是血賺 ┗|`O′|┛ 💡Bus…

python快速排序代碼_Python實現快速排序算法

原標題:Python實現快速排序算法 Python實現快速排序算法 快速排序算法是一種基于交換的高效的排序算法,由C.R.A.Hoare于1962年提出,是一種劃分交換排序。它采用了一種分治的策略,通常稱其為分治法(Divide and conquer algorithm)。…

docker mysql 生產環境_如何部署Docker MySQL生產環境?

1 前言Docker容器原則上是短暫的,如果容器被刪除或損毀,數據或配置將丟失,所以上個章節部署的MySQL只適合于測試環境,由于生產的需求,本章將使用Docker卷機制持久保存Docker容器中創建的數據。2 最佳實踐2.1 環境配置2…

kali 切換root權限_Ubuntu 被曝嚴重漏洞:切換系統語言 + 輸入幾行命令,就能獲取 root 權限...

公眾號關注 “GitHubDaily”設為 “星標”,帶你了解技術圈內新鮮事!來自量子位無需系統密碼,就能添加新的 sudo 用戶、獲取 root 權限,事后還能刪除不留痕跡。這是 GitHub 安全研究員 Kevin Backhouse 發現的一個 Ubuntu 系統大漏…

oracle定義變量sql賦值_ORACLE獲取SQL綁定變量值的方法總結

本文總結一下ORACLE數據庫中如何獲取SQL綁定變量值的方法,在SQL優化調優過程中,經常會用到這方面的知識點。在此梳理、總結一下這方面的知識點,方面日后查找、翻閱。方法1:查詢V$SQLV$SQL視圖中的BIND_DATA字段用來存儲綁定變量的…

transition css_Transition 過渡

1:基本概念在一定時間內平滑的過渡,也就是圓滑的以動畫效果改變css的屬性值。它的過渡可以由鼠標點擊、焦點獲取或者失去、被點擊事件或對元素的改變中觸發;不能主動觸發,只能被動觸發。常用的基本屬性有:Transition-d…

jdbc mysql分頁_JDBC【數據庫連接池、DbUtils框架、分頁】

1.數據庫連接池什么是數據庫連接池簡單來說:數據庫連接池就是提供連接的。。。為什么我們要使用數據庫連接池數據庫的連接的建立和關閉是非常消耗資源的頻繁地打開、關閉連接造成系統性能低下編寫連接池編寫連接池需實現java.sql.DataSource接口創建批量的Connectio…

python讀寫文件操作_詳解Python文件讀寫操作

讀文件 打開文件(文件需要存在)#打開文件 f open("data.txt","r") #設置文件對象 print(f)#文件句柄 f.close() #關閉文件 #為了方便,避免忘記close掉這個文件對象,可以用下面這種方式替代 with open(data.t…

keyloadtool_phoenix 利用CsvBulkLoadTool 批量帶入數據并自動創建索引

需要先創建表:CREATE TABLE IF NOT EXISTS population (state CHAR(2) NOT NULL, city VARCHAR NOT NULL, population BIGINTCONSTRAINT my_pk PRIMARY KEY (state, city));在phoenix 目錄下執行hadoop jar /home/phoenix-4.6.0-HBase-1.0-bin/phoenix-4.6.0-HBase-…

【cloud Alibaba】(三)流量控制、熔斷降級(下)——Sentinel

各位小伙伴們大家好,歡迎來到這個小扎扎的spring cloud專欄,在這個系列專欄中我對B站尚硅谷陽哥的spring cloud教程進行一個總結,鑒于 看到就是學到、學到就是賺到 精神,這波依然是血賺 ┗|`O′|┛ 💡Sen…

python gui入門的例子_Python GUI編程之Tkinter入門之道

相信剛學習使用Python進行GUI編程的時候,肯定都會聽過Tkinter,畢竟是standard Python interface to the Tk GUI toolkit.用來寫一些小程序還是很方便的。但如果是剛接觸GUI編程的話肯定是被官方文檔搞的有些懵,畢竟還沒弄清楚套路。之前使用過…

@async 默認線程池_SpringBoot 線程池的使用

Java大聯盟幫助萬千Java學習者持續成長關注作者|Musclehengblog.csdn.net/Muscleheng/article/details/81409672前言最近在做訂單模塊,用戶購買服務類產品之后,需要進行預約,預約成功之后分別給商家和用戶發送提醒短信。考慮發短信…

mysql 橫向擴展 中間件_mysql-proxy數據庫中間件架構 | 架構師之路

一、mysql-proxy簡介mysql-proxy是mysql官方提供的mysql中間件服務,上游可接入若干個mysql-client,后端可連接若干個mysql-server。它使用mysql協議,任何使用mysql-client的上游無需修改任何代碼,即可遷移至mysql-proxy上。mysql-…

python selenium對象怎么序列化_python selenium爬取斗魚

不加延遲報錯selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {“method”:”xpath”,”selector”:”.//span[class”DyListCover-hot”]”}(Session info: chrome80.0.3987.122)最開始以為是版本問題,不…

神經網絡的全連接層_深度神經網絡全連接層

一、概念全連接層一般在網絡的最后部分做分類輸出,全連接層的有m個輸入和n個輸出,每一個輸出都和所有的輸入相連,相連的權重w都是不一樣的,同時每一個輸出還有一個bias。二、前向全連接假設輸入是4,輸出是4&#xff0c…

vs 選定內容沒有屬性頁_從智能單品,到全屋智能:2019中國智能家居發展白皮書【附82頁PPT】...

2019年,智能家居行業在技術、市場和行業的變革中迎接新的挑戰和機遇。一方面,AI、IoT、邊緣計算全面賦能智能家居;另一方面,中國的房地產行業正在從上半場的“增量開發”,切換到下半場的“存量經營”、“樓盤精裝化”政…