我需要将一些数据发送到我不拥有或操作的服务器上。数据必须通过HTTP POST以form参数发送。密钥必须是“ logs”,并且值必须是JSON数组。此数组的每个元素都是CSV字符串,由IsChecked="{Binding Path=IsSelected, Mode=TwoWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGridRow}}}"/>
,Ctrl-A
(文字字符为 not )的 unicode表示形式分隔。>
当我通过\u0001
将CSV字符串数组转换为JSON数组时,它隐式转义了某些字符(例如json.dumps
)。
问题::"
还隐式转义了我的CSV分隔符json.dumps
,将其更改为\u0001
,这导致服务器拒绝了我的数据。要解决此问题,我手动“取消”转义它:\\u0001
问题:使用此变通办法有潜在的影响吗?我有没有更优雅的方式来解决这个问题?
s.replace('\\\\u0001', '\\u0001')
注意:python 2.7
答案 0 :(得分:0)
只需在列表中使用unicode字符串,就不要逃脱unicode
logs2 = [u'VAL1\u0001{"key":"VAL2"}', u'VAL1\u0001{"key":"VAL2"}']
serialized_logs2 = json.dumps(logs2)
应该做正确的事情,您可以通过以下方式进行验证
print(serialized_logs2 == serialized_logs.replace("\\\\u0001","\\u0001"))
(其中serialized_logs是您上方的json.dumps
结果)
请参阅:https://repl.it/@JoranBeasley/SoreGrimQuotient(python2)