簡體   English   中英

為每行csv創建一個JSON

[英]Create a JSON per row of csv

我試圖弄清楚如何調整我的代碼,以便它將csv的每一行寫入其自己的json,然后將其發布(以及我想嘗試遍歷的方式,每個json文件都被覆蓋時間沒問題)。

我的代碼會根據需要生成結構化的json,並將所有內容格式化為正確的數據類型,但是我一生無法解決如何明智地遍歷此行。 我還有另一段代碼可以實現第二個目標,但是到目前為止,我將它們組合在一起的所有嘗試都失敗了。

關於如何遍歷此代碼的任何建議?

output = []
with open('Test3.csv') as csv_file:
    for a in csv.DictReader(csv_file):
        output.append({
            'OrderType': a['OrderType'],
            'OrderStatus': a['OrderStatus'],
            'OrderDateTime': a['OrderDateTime'],
            'SettlementDate': a['SettlementDate'],
            'MarketId': int(a['MarketId']),
            'OrderRoute': a['OrderRoute'],
            'OrderEntityType': a['OrderEntityType'],
            'SecurityId': a['SecurityId'],
            'CurrencyISOCode': a['CurrencyISOCode'],
            'Price': float(a['Price']),
            'TotalCommission': float(a['TotalCommission']),
            'SettlementStatus': a['SettlementStatus'],
            'QuantitySettled': float(a['QuantitySettled']),
            'SecurityOrderAllocations': {
                'Reference': a['Account Number'],
                'InvestmentCollectiveId': a['Account Number'],
                'NominalAmount': float(a['QuantitySettled']),
                'InvestmentAmount': float(a['InvestmentAmount']),
                'OpenNominal': float(a['QuantitySettled']),
                'SettlementCurrencyISOCode': 'USD',
                'SettlementAccountId': a['Account Number'],
                'OrderToSettlementExchangeRate': float('1'),
                'SettlementToPortfolioExchangeRate': float('1'),
                'OrderToPortfolioExchangeRate': float('1')
            }
        })

output_json = json.dumps(output)
with open ('Test.json', 'w') as f:
    f.write(output_json)

將您從CSV行創建的每個字典轉換為JSON,然后將其寫入文件(或將其發布到URL,或任何您想使用的文件)。

filenum = 1
with open('Test3.csv') as csv_file:
    for a in csv.DictReader(csv_file):
        json = json.dumps({
            'OrderType': a['OrderType'],
            'OrderStatus': a['OrderStatus'],
            'OrderDateTime': a['OrderDateTime'],
            'SettlementDate': a['SettlementDate'],
            'MarketId': int(a['MarketId']),
            'OrderRoute': a['OrderRoute'],
            'OrderEntityType': a['OrderEntityType'],
            'SecurityId': a['SecurityId'],
            'CurrencyISOCode': a['CurrencyISOCode'],
            'Price': float(a['Price']),
            'TotalCommission': float(a['TotalCommission']),
            'SettlementStatus': a['SettlementStatus'],
            'QuantitySettled': float(a['QuantitySettled']),
            'SecurityOrderAllocations': {
                'Reference': a['Account Number'],
                'InvestmentCollectiveId': a['Account Number'],
                'NominalAmount': float(a['QuantitySettled']),
                'InvestmentAmount': float(a['InvestmentAmount']),
                'OpenNominal': float(a['QuantitySettled']),
                'SettlementCurrencyISOCode': 'USD',
                'SettlementAccountId': a['Account Number'],
                'OrderToSettlementExchangeRate': float('1'),
                'SettlementToPortfolioExchangeRate': float('1'),
                'OrderToPortfolioExchangeRate': float('1')
            }
        })
        with open('Test' + str(filenum) + '.csv', 'w') as f:
            f.write(json)
    filenum += 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM