Re: how to read list from file

2013-10-07 Thread Jussi Piitulainen
Harvey Greenberg writes:

 On Saturday, October 5, 2013 7:24:39 PM UTC-6, Tim Chase wrote:
 s = [{'a':1, 'b':2}, [1,2,3], 10]
 import ast
 print repr(ast.literal_eval(s))
[{'a': 1, 'b': 2}, [1, 2, 3], 10]

 that didn't work.  printing it looks like the list because it's the
 input, but try printing len(repr(ast.literal_eval(s))).  It should
 give 3, but it gives 72 (number of chars).

Not sure what the print repr( ) is meant to achieve here, but I
think you should be able to see through it:

   ast.literal_eval(s)
  [{'a': 1, 'b': 2}, [1, 2, 3], 10]
   len(ast.literal_eval(s))
  3
   
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: how to read list from file

2013-10-06 Thread Terry Reedy

On 10/5/2013 9:08 PM, Harvey Greenberg wrote:

I am looping as for L in file.readlines(), where file is csv.


I believe 'for L in file:' does the same, more efficiently, even in 2.7.

--
Terry Jan Reedy

--
https://mail.python.org/mailman/listinfo/python-list


Re: how to read list from file

2013-10-06 Thread Harvey Greenberg
On Saturday, October 5, 2013 7:24:39 PM UTC-6, Tim Chase wrote:
 On 2013-10-05 18:08, Harvey Greenberg wrote:
 
  I am looping as for L in file.readlines(), where file is csv.
 
  
 
  L is a list of 3 items, eg, [{'a':1, 'b':2}, [1,2,3], 10] Note that
 
  the first item is a dir and 2nd is a list, so parsing with split
 
  doesn't work.  Is there a way to convert L, which is a string, to
 
  the list of 3 items I want?
 
 
 
 sounds like you want ast.literal_eval():
 
 
 
   Python 2.7.3 (default, Jan  2 2013, 13:56:14) 
 
   [GCC 4.7.2] on linux2
 
   Type help, copyright, credits or license for more
 
   information.
 
s = [{'a':1, 'b':2}, [1,2,3], 10]
 
import ast
 
print repr(ast.literal_eval(s))
 
   [{'a': 1, 'b': 2}, [1, 2, 3], 10]
 
 
 
 -tkc

that didn't work.  printing it looks like the list because it's the input, but 
try printing len(repr(ast.literal_eval(s))).  It should give 3, but it gives 72 
(number of chars).
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: how to read list from file

2013-10-06 Thread Harvey Greenberg
On Sunday, October 6, 2013 10:41:33 AM UTC-6, Harvey Greenberg wrote:
 On Saturday, October 5, 2013 7:24:39 PM UTC-6, Tim Chase wrote:
 
  On 2013-10-05 18:08, Harvey Greenberg wrote:
 
  
 
   I am looping as for L in file.readlines(), where file is csv.
 
  
 
   
 
  
 
   L is a list of 3 items, eg, [{'a':1, 'b':2}, [1,2,3], 10] Note that
 
  
 
   the first item is a dir and 2nd is a list, so parsing with split
 
  
 
   doesn't work.  Is there a way to convert L, which is a string, to
 
  
 
   the list of 3 items I want?
 
  
 
  
 
  
 
  sounds like you want ast.literal_eval():
 
  
 
  
 
  
 
Python 2.7.3 (default, Jan  2 2013, 13:56:14) 
 
  
 
[GCC 4.7.2] on linux2
 
  
 
Type help, copyright, credits or license for more
 
  
 
information.
 
  
 
 s = [{'a':1, 'b':2}, [1,2,3], 10]
 
  
 
 import ast
 
  
 
 print repr(ast.literal_eval(s))
 
  
 
[{'a': 1, 'b': 2}, [1, 2, 3], 10]
 
  
 
  
 
  
 
  -tkc
 
 
 
 that didn't work.  printing it looks like the list because it's the input, 
 but try printing len(repr(ast.literal_eval(s))).  It should give 3, but it 
 gives 72 (number of chars).

None of the responses worked; after import json, I used:

  for line in inputFile.readlines():
 L = json.loads(line.replace(,))
 print L, len(L)

I get error.  I probably  misunderstood how to implement these suggestions, but 
I wrote a list to a csv file whose members have lists.  I now want to read them 
(in another program) and end up with the origianl list.
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: how to read list from file

2013-10-06 Thread Ravi Sahni
On Sun, Oct 6, 2013 at 10:11 PM, Harvey Greenberg hjgreenb...@gmail.com wrote:
 On Saturday, October 5, 2013 7:24:39 PM UTC-6, Tim Chase wrote:
   Python 2.7.3 (default, Jan  2 2013, 13:56:14)
   [GCC 4.7.2] on linux2
   Type help, copyright, credits or license for more
   information.
s = [{'a':1, 'b':2}, [1,2,3], 10]
import ast
print repr(ast.literal_eval(s))
   [{'a': 1, 'b': 2}, [1, 2, 3], 10]



 -tkc

 that didn't work.  printing it looks like the list because it's the input, 
 but try printing len(repr(ast.literal_eval(s))).  It should give 3, but it 
 gives 72 (number of chars).

Please to remove the repr and try again?
Thank you!

-- 
Ravi
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: how to read list from file

2013-10-06 Thread Harvey Greenberg
On Saturday, October 5, 2013 7:08:08 PM UTC-6, Harvey Greenberg wrote:
 I am looping as for L in file.readlines(), where file is csv.
 
 
 
 L is a list of 3 items, eg, [{'a':1, 'b':2}, [1,2,3], 10] Note that the first 
 item is a dir and 2nd is a list, so parsing with split doesn't work.  Is 
 there a way to convert L, which is a string, to the list of 3 items I want?

Yay It worked.  Thanks!
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: how to read list from file

2013-10-06 Thread Mark Lawrence

On 06/10/2013 17:57, Harvey Greenberg wrote:

On Saturday, October 5, 2013 7:08:08 PM UTC-6, Harvey Greenberg wrote:

I am looping as for L in file.readlines(), where file is csv.



L is a list of 3 items, eg, [{'a':1, 'b':2}, [1,2,3], 10] Note that the first 
item is a dir and 2nd is a list, so parsing with split doesn't work.  Is there 
a way to convert L, which is a string, to the list of 3 items I want?


Yay It worked.  Thanks!



Very pleased to know, but if you need to post again would you be kind 
enough to read this first, thanks 
https://wiki.python.org/moin/GoogleGroupsPython


--
Roses are red,
Violets are blue,
Most poems rhyme,
But this one doesn't.

Mark Lawrence

--
https://mail.python.org/mailman/listinfo/python-list


Re: how to read list from file

2013-10-06 Thread Ravi Sahni
On Sun, Oct 6, 2013 at 10:27 PM, Harvey Greenberg hjgreenb...@gmail.com wrote:
 On Saturday, October 5, 2013 7:08:08 PM UTC-6, Harvey Greenberg wrote:
 I am looping as for L in file.readlines(), where file is csv.



 L is a list of 3 items, eg, [{'a':1, 'b':2}, [1,2,3], 10] Note that the 
 first item is a dir and 2nd is a list, so parsing with split doesn't work.  
 Is there a way to convert L, which is a string, to the list of 3 items I 
 want?

 Yay It worked.  Thanks!

Which method working?
Literal_eval method? JSON method? Some third method?

[I am newbie so interested. Please to excuse!!]
-- 
Ravi
-- 
https://mail.python.org/mailman/listinfo/python-list


how to read list from file

2013-10-05 Thread Harvey Greenberg
I am looping as for L in file.readlines(), where file is csv.

L is a list of 3 items, eg, [{'a':1, 'b':2}, [1,2,3], 10] Note that the first 
item is a dir and 2nd is a list, so parsing with split doesn't work.  Is there 
a way to convert L, which is a string, to the list of 3 items I want?

-- 
https://mail.python.org/mailman/listinfo/python-list


Re: how to read list from file

2013-10-05 Thread Tim Chase
On 2013-10-05 18:08, Harvey Greenberg wrote:
 I am looping as for L in file.readlines(), where file is csv.
 
 L is a list of 3 items, eg, [{'a':1, 'b':2}, [1,2,3], 10] Note that
 the first item is a dir and 2nd is a list, so parsing with split
 doesn't work.  Is there a way to convert L, which is a string, to
 the list of 3 items I want?

sounds like you want ast.literal_eval():

  Python 2.7.3 (default, Jan  2 2013, 13:56:14) 
  [GCC 4.7.2] on linux2
  Type help, copyright, credits or license for more
  information.
   s = [{'a':1, 'b':2}, [1,2,3], 10]
   import ast
   print repr(ast.literal_eval(s))
  [{'a': 1, 'b': 2}, [1, 2, 3], 10]

-tkc








-- 
https://mail.python.org/mailman/listinfo/python-list


Re: how to read list from file

2013-10-05 Thread Roy Smith
In article fbc6e512-88fa-4de0-80d3-6757fcc52...@googlegroups.com,
 Harvey Greenberg hjgreenb...@gmail.com wrote:

 I am looping as for L in file.readlines(), where file is csv.
 
 L is a list of 3 items, eg, [{'a':1, 'b':2}, [1,2,3], 10] Note that the first 
 item is a dir and 2nd is a list, so parsing with split doesn't work.  Is 
 there a way to convert L, which is a string, to the list of 3 items I want?

I hate to recommend it (since it's bad practice for a number of 
legitimate reasons), but passing your string to eval() will get you what 
you want.

It's also very close to being valid JSON syntax, the only difference 
being the use of single instead of double quotes.  You might want to 
just turn it into JSON by substituting the right kind of quotes.

json.loads([{'a':1, 'b':2}, [1,2,3], 10].replace(', ''))
[{u'a': 1, u'b': 2}, [1, 2, 3], 10]
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: how to read list from file

2013-10-05 Thread Roy Smith
In article mailman.767.1381022585.18130.python-l...@python.org,
 Tim Chase python.l...@tim.thechases.com wrote:

 sounds like you want ast.literal_eval():

This sounds like a better idea than either of my earlier suggestions!
-- 
https://mail.python.org/mailman/listinfo/python-list