๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด/Python

ํŒŒ์ด์ฌ์—์„œ json ํŒŒ์‹ฑํ•˜๊ธฐ

by ์„œ์•„๋ž‘๐Ÿ˜ƒ 2023. 5. 18.

 

 

ํŒŒ์ด์ฌ์—์„œ json ํŒŒ์ผ์„ ์ฝ๊ณ  ํŒŒ์‹ฑ ํ›„ ๋‚˜๋ฆ„์˜ ํ•„ํ„ฐ๋ง์„ ๊ฑฐ์ณ ๋ณด๊ณ  ์‹ถ์€ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋‹ค. ํŒŒ์ด์ฌ์—์„œ๋Š” json์„ js์™€ ๊ฐ™์ด ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ณ„๋„์˜ ์ถ”๊ฐ€ ํŒจํ‚ค์ง€ ์—†์ด json์„ ์ฝ๊ณ  ์“ธ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•œ๋‹ค.

๋ณดํ†ต json์„ ํŒŒ์ด์ฌ์˜ ๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ, ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ณ€ํ™˜ํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์— ๋ฐ˜์˜ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค.

 

์•„๋ž˜๋Š” json ํŒŒ์ผ์„ open ํ›„ loadํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด json_data๋กœ ์ฝ๊ณ  ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋“ค์„ ๋ฆฌ์ŠคํŠธ์— ๋”ฐ๋กœ ๋‹ด์•„์„œ count์™€ ๋ฐ์ดํ„ฐ ๋ชจ๋‘ ์ถœ๋ ฅํ•˜๋Š” ์˜ˆ์ œ์ด๋‹ค.

import json

with open("ETHUSDT.json", "r") as f:
    json_data = json.load(f)

# print(json.dumps(json_data))



buy_arr = []
sell_arr = []
for json_obj in json_data:
    if "SELL" in json_obj["side"] and ("SEOA" in json_obj["clientOrderId"] or "C2O" in json_obj["clientOrderId"] or "REFILL" in json_obj["clientOrderId"]):
        sell_arr.append((json_obj["price"], json_obj["side"], json_obj["clientOrderId"]))
    
    if "BUY" in json_obj["side"] and ("SEOA" in json_obj["clientOrderId"] or "C2O" in json_obj["clientOrderId"] or "REFILL" in json_obj["clientOrderId"]):
        buy_arr.append((json_obj["price"], json_obj["side"], json_obj["clientOrderId"]))
    
    
sub_arr = []
for json_obj in json_data:
    if "SUB" in json_obj["clientOrderId"]:
        sub_arr.append((json_obj["price"], json_obj["side"], json_obj["clientOrderId"]))


#buy_jes_arr.sort(key = lambda x:x[0], reverse=True)

print("Total count = ", len(json_data))

print("JES_BUY count = ", len(buy__arr))
print("JES_SELL count = ", len(sell_arr))
print("SUB count = ", len(sub_arr))
print("---- DATA ----")

print("BUY: ", buy_arr)
print("SELL: ", sell_arr)
print("SUB:", sub_arr)

 

์•„๋ž˜๋Š” jsonํŒŒ์ผ์˜ ๋‚ด์šฉ์ด๋‹ค. Array ๋‚ด ๊ฐ์ฒด๊ฐ€ 200๊ฐœ๊ฐ€ ๋„˜๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ถ€๋งŒ ๊ฐ€์ ธ์™”๋‹ค.

[
    {
        "time": "1684375756476",
        "updateTime": "1684375756499",
        "orderId": "1423041418184758528",
        "clientOrderId": "SELL-755933-1020003-100-O-SEOA-OT",
        "symbol": "ETHUSDT",
        "price": "1823.35",
        "orderType": "LIMIT",
        "side": "SELL",
    },
    {
        "time": "1684375756467",
        "updateTime": "1684375756769",
        "orderId": "1423041418159521024",
        "clientOrderId": "BUY-755933-1020003-1-O-SEOA",
        "symbol": "ETHUSDT",
        "price": "1820.85",
        "orderType": "LIMIT",
        "side": "BUY",
    },
    {
        "time": "1684375750347",
        "updateTime": "1684375753853",
        "orderId": "1423041366687094016",
        "clientOrderId": "BUY-749778-1020003-1-O-SUB",
         "symbol": "ETHUSDT",
        "price": "1819.25",
        "orderType": "LIMIT",
        "side": "BUY",
    },
    {
        "time": "1684375750326",
        "updateTime": "1684375750349",
        "orderId": "1423041366645079296",
        "clientOrderId": "SELL-749778-1020003-100-O-REFILL-OT",
         "symbol": "ETHUSDT",
        "price": "1819.05",
        "orderType": "LIMIT",
        "side": "BUY"
    }
    
...

]

 

๋Œ“๊ธ€