Re: How do I process this?

2014-03-03 Thread Tim Chase
On 2014-03-03 20:03, Igor Korot wrote:
> Hi, ALL,
> I have a csv file which depending on how it was produced gives 2
> different strings as shown in the example below (test1 and test2).
> I am only interested in the first field in test1 and obviously in
> the whole string of test2.
> 
> So, I tried to see if I can get what I want in one simple way, but
> failed. Is it possible to process the file independently?
> 
> Thank you.
> 
> >>> test1 = "a"
> >>> test2 = "a"
> >>> (t1,_) = test1.split(',')
> Traceback (most recent call last):
>   File "", line 1, in 
> ValueError: too many values to unpack
> >>> (t2,_) = test2.split(',')
> Traceback (most recent call last):
>   File "", line 1, in 
> ValueError: need more than 1 value to unpack
> >>>

Have you tried

  t = test.split(',', 1)[0]

or

  t = test.partition(',')[0]

Both of which yield the same results for me.

-tkc


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


Re: How do I process this?

2014-03-03 Thread Zachary Ware
On Mon, Mar 3, 2014 at 10:03 PM, Igor Korot  wrote:
> Hi, ALL,
> I have a csv file which depending on how it was produced gives 2 different
> strings as shown in the example below (test1 and test2).
> I am only interested in the first field in test1 and obviously in the whole
> string of test2.
>
> So, I tried to see if I can get what I want in one simple way, but failed.
> Is it possible to process the file independently?
>
> Thank you.
>
> python
> Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on
> win32
> Type "help", "copyright", "credits" or "license" for more information.
 test1 = "a"
 test2 = "a"
 (t1,_) = test1.split(',')
> Traceback (most recent call last):
>   File "", line 1, in 
> ValueError: too many values to unpack
 (t2,_) = test2.split(',')
> Traceback (most recent call last):
>   File "", line 1, in 
> ValueError: need more than 1 value to unpack


I'm not sure what you mean by "is it possible to process the file
independently", can you expand on that a bit?

As far as what you're trying to do, there are a couple ways to do it.
If you can use Python 3 instead:

T:\emp>py -3
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:06:53) [MSC v.1600
64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> test1 = "a"
>>> test2 = "a"
>>> t1, *remainder1 = test1.split(',')
>>> t1
'a'
>>> remainder1
['', '', '', '']
>>> t2, *remainder2 = test2.split(',')
>>> t2
'a'
>>> remainder2
[]
>>> ^Z

Or, if you're stuck on Python 2:

T:\emp>py -2
Python 2.7.5 (default, May 15 2013, 22:44:16) [MSC v.1500 64 bit
(AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> test1 = "a"
>>> test2 = "a"
>>> t1 = test1.split(',')[0]
>>> t1
'a'
>>> t2 = test2.split(',')[0]
>>> t2
'a'
>>>

Hope this helps,

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


Re: How do I process this?

2014-03-03 Thread John Gordon
In  Igor Korot 
 writes:

> --047d7b6dc250a1426004f3bffd8d
> Content-Type: text/plain; charset=ISO-8859-1

> Hi, ALL,
> I have a csv file which depending on how it was produced gives 2 different
> strings as shown in the example below (test1 and test2).
> I am only interested in the first field in test1 and obviously in the whole
> string of test2.

> So, I tried to see if I can get what I want in one simple way, but failed.
> Is it possible to process the file independently?

> Thank you.

split() returns a list.  Use indexing to grab only the element you want,
like this:

t1 = test1.split(',')[0]
t2 = test2.split(',')[0]

-- 
John Gordon Imagine what it must be like for a real medical doctor to
gor...@panix.comwatch 'House', or a real serial killer to watch 'Dexter'.

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


Re: How do I process this?

2014-03-04 Thread alex23

On 4/03/2014 2:03 PM, Igor Korot wrote:

Hi, ALL,
I have a csv file which depending on how it was produced gives 2
different strings as shown in the example below (test1 and test2).
I am only interested in the first field in test1 and obviously in the
whole string of test2.
 >>> test1 = "a"
 >>> test2 = "a"


Try using the csv module:

>>> from StringIO import StringIO
>>> csvfile = StringIO()
>>> csvfile.write('a\n')
>>> csvfile.write('a\n')
>>> csvfile.seek(0)
>>>
>>> import csv
>>> reader = csv.reader(csvfile)
>>> [x[0] for x in reader]
['a', 'a']
--
https://mail.python.org/mailman/listinfo/python-list


Re: How do I process this using Python?

2013-08-31 Thread Chris Angelico
On Sun, Sep 1, 2013 at 9:44 AM, Anthony Papillion  wrote:
> I'm writing a processor for Bitmessage messages and I am needing to
> parse the following returned JSON string:
>
> {u'inboxMessages':

Does the JSON string really have those u prefixes and apostrophes?
That's not valid JSON. You may be able to use ast.literal_eval() on it
- I was able to with the example data - but not a JSON parser. Can you
sort out your transmission end?

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: How do I process this using Python?

2013-08-31 Thread Anthony Papillion
On 08/31/2013 06:48 PM, Chris Angelico wrote:
> On Sun, Sep 1, 2013 at 9:44 AM, Anthony Papillion  wrote:
>> I'm writing a processor for Bitmessage messages and I am needing to
>> parse the following returned JSON string:
>>
>> {u'inboxMessages':
> 
> Does the JSON string really have those u prefixes and apostrophes?
> That's not valid JSON. You may be able to use ast.literal_eval() on it
> - I was able to with the example data - but not a JSON parser. Can you
> sort out your transmission end?
> 
> ChrisA

I think I remembered what the 'u' prefix is. It indicates that the data
following is a unicode string. So could that be valid JSON data wrapped
up in unicode?

Anthony


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


Re: How do I process this using Python?

2013-08-31 Thread Chris Angelico
On Sun, Sep 1, 2013 at 10:19 AM, Anthony Papillion  wrote:
> On 08/31/2013 06:48 PM, Chris Angelico wrote:
>> On Sun, Sep 1, 2013 at 9:44 AM, Anthony Papillion  
>> wrote:
>>> I'm writing a processor for Bitmessage messages and I am needing to
>>> parse the following returned JSON string:
>>>
>>> {u'inboxMessages':
>>
>> Does the JSON string really have those u prefixes and apostrophes?
>> That's not valid JSON. You may be able to use ast.literal_eval() on it
>> - I was able to with the example data - but not a JSON parser. Can you
>> sort out your transmission end?
>>
>> ChrisA
>
> I think I remembered what the 'u' prefix is. It indicates that the data
> following is a unicode string. So could that be valid JSON data wrapped
> up in unicode?

No; JSON already supports Unicode. What you may have is an incorrect
JSON encoder that uses Python's repr() to shortcut its work - but it's
wrong JSON.

But bitmessage seems to be written in Python. Can you simply access
the objects it's giving you, rather than going via text strings?

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: How do I process this using Python?

2013-08-31 Thread Cameron Simpson
On 31Aug2013 19:19, Anthony Papillion  wrote:
| On 08/31/2013 06:48 PM, Chris Angelico wrote:
| > On Sun, Sep 1, 2013 at 9:44 AM, Anthony Papillion  
wrote:
| >> I'm writing a processor for Bitmessage messages and I am needing to
| >> parse the following returned JSON string:
| >>
| >> {u'inboxMessages':
| > 
| > Does the JSON string really have those u prefixes and apostrophes?
| > That's not valid JSON. You may be able to use ast.literal_eval() on it
| > - I was able to with the example data - but not a JSON parser. Can you
| > sort out your transmission end?
| 
| I think I remembered what the 'u' prefix is. It indicates that the data
| following is a unicode string. So could that be valid JSON data wrapped
| up in unicode?

How sure are you that it is JSON? It looks to me like a message
that might once have been JSON, but has already been passed through
json.loads() for you.

What does type(the_json) say? What does repr(the_json) say?
Print both.

I would guess it has already been parsed.

Cheers,
-- 
Cameron Simpson 

Sattinger's Second Law: Even though you've plugged it in, it still won't work
until you switch it on.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: How do I process this using Python?

2013-08-31 Thread Anthony Papillion
On 08/31/2013 07:32 PM, Cameron Simpson wrote:
> On 31Aug2013 19:19, Anthony Papillion  wrote:
> | On 08/31/2013 06:48 PM, Chris Angelico wrote:
> | > On Sun, Sep 1, 2013 at 9:44 AM, Anthony Papillion  
> wrote:
> | >> I'm writing a processor for Bitmessage messages and I am needing to
> | >> parse the following returned JSON string:
> | >>
> | >> {u'inboxMessages':
> | > 
> | > Does the JSON string really have those u prefixes and apostrophes?
> | > That's not valid JSON. You may be able to use ast.literal_eval() on it
> | > - I was able to with the example data - but not a JSON parser. Can you
> | > sort out your transmission end?
> | 
> | I think I remembered what the 'u' prefix is. It indicates that the data
> | following is a unicode string. So could that be valid JSON data wrapped
> | up in unicode?
> 
> How sure are you that it is JSON? It looks to me like a message
> that might once have been JSON, but has already been passed through
> json.loads() for you.
> 
> What does type(the_json) say? What does repr(the_json) say?
> Print both.
> 
> I would guess it has already been parsed.
> 
> Cheers,

And you would be right! It's actually a dictionary!

Anthony


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


Re: How do I process this using Python?

2013-08-31 Thread Steven D'Aprano
On Sat, 31 Aug 2013 18:44:04 -0500, Anthony Papillion wrote:

> Hello Everyone,
> 
> I'm writing a processor for Bitmessage messages and I am needing to
> parse the following returned JSON string:
[...]
> For some reason (probably obvious reasons) isn't working. I'm trying to
> loop through the JSON and return all of the fromAddress fields.
> 
> Can anyone offer suggestions?


Yes. Don't assume that "isn't working" is obvious. What do you mean 
"isn't working"? What part isn't working? What does it do? Does it print 
the wrong results, or does it raise an exception? If so, please copy and 
paste the entire traceback, do not simplify it, summarise it, or retype 
it from memory.


-- 
Steven
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: How do I process this using Python? (SOLVED)

2013-08-31 Thread Anthony Papillion
On 08/31/2013 07:32 PM, Chris Angelico wrote:
> On Sun, Sep 1, 2013 at 10:19 AM, Anthony Papillion  
> wrote:
>> On 08/31/2013 06:48 PM, Chris Angelico wrote:
>>> On Sun, Sep 1, 2013 at 9:44 AM, Anthony Papillion  
>>> wrote:
 I'm writing a processor for Bitmessage messages and I am needing to
 parse the following returned JSON string:

 {u'inboxMessages':
>>>
>>> Does the JSON string really have those u prefixes and apostrophes?
>>> That's not valid JSON. You may be able to use ast.literal_eval() on it
>>> - I was able to with the example data - but not a JSON parser. Can you
>>> sort out your transmission end?
>>>
>>> ChrisA
>>
>> I think I remembered what the 'u' prefix is. It indicates that the data
>> following is a unicode string. So could that be valid JSON data wrapped
>> up in unicode?
> 
> No; JSON already supports Unicode. What you may have is an incorrect
> JSON encoder that uses Python's repr() to shortcut its work - but it's
> wrong JSON.
> 
> But bitmessage seems to be written in Python. Can you simply access
> the objects it's giving you, rather than going via text strings?
> 
> ChrisA

Once I looked at the data in a better structured way and saw it in the
proper type it became clear. Here is my solution:

data = json.loads(api.getAllInboxMessages())
for message in data['inboxmessages']:
print message['fromAddress']

Yep, it was that simple. Thanks for the help guys! I appreciate how fast
everyone responded.

Anthony


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