从Powershell outpu生成的Python escape JSON文件

2024-06-02 07:13:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Powershell脚本,它运行一个SQL查询,使用ConvertTo-JSON将其转换为JSON并将其写入文件。然后我使用Posh-SSHpowershell模块将这个文件SFTP到linux服务器。在

然后,Linux服务器运行一个python脚本来打开文件并将其转换为JSON:

fname = '/foo/bar/map.json'
with open(fname, 'r') as f:
    map = json.loads(f.read())

然后,这个Python脚本抛出错误:

No JSON object could be decoded

很明显,这是由于Windows/Powershell在混合体中加入了一些时髦的角色。我已经使用JSON linter来验证JSON的完整性,当我在Linux中复制转储并将其粘贴到一个新文件中时,这一切都很简单。在

我该怎么办?我对字符编码的了解还不够,无法判断到底发生了什么。在


Tags: 模块文件服务器脚本jsonmapsqllinux
1条回答
网友
1楼 · 发布于 2024-06-02 07:13:56

为什么在StackOverflow上写一个问题总是让我马上解决自己的问题?我是说,花了好几个小时。在


把编码设置为UTF8就可以了。在

Invoke-SQLCmd -Query "exec foo.dbo.proc"
   | Select-Object * -ExcludeProperty ItemArray, Table, RowError, RowState, HasErrors
   | ConvertTo-Json
   | % { [System.Text.RegularExpressions.Regex]::Unescape($_) }
   | Out-File "c:\config\map.json" -Encoding UTF8

相关问题 更多 >