Как бы я отформатировать это в таблице? - PullRequest
0 голосов
/ 11 марта 2020

Я могу получить этот тип текста в тип файла .txt. Как бы я преобразовал их в строки и столбцы?
Я вижу шаблон: Заголовок - это первая кавычка, Вторые кавычки - это Значение, затем разделенные запятой.
"Заголовок": " Значение ", ... Как я могу работать с этим шаблоном? Любая помощь приветствуется. Спасибо

[{
"DateTimeLogged": "2019-11-19 15:40:13",
"DataDateTimeInMicroSeconds": "1574178002315077",
"JSON": {
    "ActivityType": "2",
    "DataDateTime": "1574178002315077",
    "Symbol": "ESZ19_FUT_CME",
    "OrderTypeName": "Limit",
    "Quantity": "1",
    "BuySell": "2",
    "Price1": "312000",
    "Price2": "0",
    "NewOrderStatus": "8",
    "FillPrice": "312000",
    "OrderFilledQuantity": "1",
    "HighPriceDuringPosit ion": "312000",
    "LowPriceDuringPosition": "312000",
    "LastPriceDuringPosition": "312000",
    "TradeAccount": "AC114670",
    "P arentInternalOrderID": "0",
    "OpenClose": "2",
    "IsSimulated": "0",
    "IsAutomatedOrder": "0",
    "IsChartReplaying": "0"
}}]

Ответы [ 2 ]

0 голосов
/ 11 марта 2020

Я не уверен, хотите ли вы, чтобы два свойства "DateTimeLogged" и "DataDateTimeInMicroSeconds" также были включены в вывод, но если это так, вы можете сгладить объект `` JSON` внутри и добавить эти свойства к нему перед выводом:

# read the file and convert fron Json
$json = Get-Content -Path 'D:\data.txt' | ConvertFrom-Json

Следующим шагом является выравнивание данных, чтобы все свойства были в одном объекте

# append the two top properties to the JSON object, so you can output that as table (csv file)
$flatObject = $json.JSON | Select-Object *, 
                           @{Name = 'DateTimeLogged'; Expression = {$json.DateTimeLogged}},
                           @{Name = 'DataDateTimeInMicroSeconds'; Expression = {$json.DataDateTimeInMicroSeconds}}

# output on console screen. (this will not fit in a Table format)
$flatObject

# output to CSV file to open in Excel. (this will give you the table format)
$flatObject | Export-Csv -Path 'D:\table.csv' -UseCulture -NoTypeInformation

# output to GridView will show the data as table
$flatObject | Out-GridView
0 голосов
/ 11 марта 2020

Исходя из комментариев и обнадеживающих спекуляций, нижеследующее должно работать для вас.

$TextFile = Get-Content C:\Path\File.txt
$JSON = $TextFile | ConvertFrom-Json

После этого вы сможете сделать $JSON.JSON, чтобы получить детали там, где $JSON.DateTimeLogged вернется 2019-11-19 15:40:13.

РЕДАКТИРОВАТЬ: Для простоты комментариев.

Do $JSON.JSON | Format-Table -AutoSize

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...