我有一个函数,从一个CSV文件读取和转储的内容到一个文件的选择。这个csv文件的内容是一个列,其中每行包含一系列类似这样的JSON对象(用jsonlint验证):
[{"className": "Merchant", "__type": "Pointer", "objectId": "S8IGOwBn8Y"}, {"className": "Merchant", "__type": "Pointer", "objectId": "psNnxwFVmv"}, {"className": "Merchant", "__type": "Pointer", "objectId": "IHcC9ikKBJ"}, {"className": "Merchant", "__type": "Pointer", "objectId": "RVprbh5nWx"}, {"className": "Merchant", "__type": "Pointer", "objectId": "47Zjn9RRov"}, {"className": "Merchant", "__type": "Pointer", "objectId": "CoGtlmGzyo"}, {"className": "Merchant", "__type": "Pointer", "objectId": "yJHn9dBCIT"}, {"className": "Merchant", "__type": "Pointer", "objectId": "nEOY9RPRD4"}]
把这个概念化一点,这就是我想要的:
csv file ---> function that I wrote ---> something.json
在这种情况下,我用测试.csv作为输入和测试.txt作为输出。对于第一个json流,它似乎工作得很好,但有一个怪癖:
第一个JSON对象很好地显示出来:
[
{"className": "Merchant", "__type": "Pointer", "objectId": "S8IGOwBn8Y"},
{"className": "Merchant", "__type": "Pointer", "objectId": "psNnxwFVmv"},
{"className": "Merchant", "__type": "Pointer", "objectId": "IHcC9ikKBJ"}],
但在那之后,他们开始像这样出现:
"[{""className"": ""Merchant"", ""__type"": ""Pointer"", ""objectId"": ""S8IGOwBn8Y""},
{""className"": ""Merchant"", ""__type"": ""Pointer"", ""objectId"": ""psNnxwFVmv""},
{""className"": ""Merchant"", ""__type"": ""Pointer"", ""objectId"": ""IHcC9ikKBJ""},
{""className"": ""Merchant"", ""__type"": ""Pointer"", ""objectId"": ""RVprbh5nWx""},
{""className"": ""Merchant"", ""__type"": ""Pointer"", ""objectId"": ""47Zjn9RRov""},
{""className"": ""Merchant"", ""__type"": ""Pointer"", ""objectId"": ""CoGtlmGzyo""},
{""className"": ""Merchant"", ""__type"": ""Pointer"", ""objectId"": ""yJHn9dBCIT""},
{""className"": ""Merchant"", ""__type"": ""Pointer"", ""objectId"": ""nEOY9RPRD4""}',
'\n[{""className"": ""Merchant"", ""__type"": ""Pointer"", ""objectId"": ""tNgLB9dobR""},
下面是执行此操作的函数:
def read_csv(thefile):
f = open('test.txt','w')
with open(thefile, 'rb') as csvfile:
#based on python documentation
spamreader = csv.reader(csvfile, delimiter=']')
for row in spamreader:
f.write(str(row))
f.close()
两个问题:
如何确保输出一致?换句话说,如何消除“”和换行符,以便所有JSON都有效?这和我加的NLSPARAM有关吗?
最后,我不想转储到.txt文件,而是转储到.json文件。如何做到这一点?
感谢所有回复!你知道吗
我猜-未经测试-:
在任何情况下,使用这个库都会对您有很大帮助:https://docs.python.org/2/library/json.html
相关问题 更多 >
编程相关推荐