Read csv file and create a new file
Neil Cerutti
neilc at norwich.edu
Thu Feb 28 15:11:46 EST 2013
On 2013-02-28, io <maroso at libero.it> wrote:
> I'm a noob in python but my code looks like this :
>
>
> import json
> import urllib
> import csv
I take back what I said about the csv module. It appears you need
access to at least one of the data fields, so this is a good use
of csv.
> url = "http://bitcoincharts.com/t/markets.json"
> response = urllib.urlopen(url);
> data = json.loads(response.read())
>
> f = open("/home/io/markets.csv","wb")
> c = csv.writer(f)
>
> #apre un file di testo e legge il contenuto del file inserendolo in una
> stringa
> esclusioni = open('/home/io/exclusions.txt','r')
> string = ""
The list of exclusions should be stored in a set or list, not a
string. This is your main "bug."
esclusioni_file = open('/home/io/exclusions.txt','r')
esclusioni = []
> while 1:
> line = esclusioni.readline()
> if not line:break
> string += line
> print string
Iterate over the file instead of looping manually.
for line in esclusioni_file:
esclusioni.append(line.strip())
print(esclusioni)
> # write headers
> c.writerow(["Currency","Symbol","Bid", "Ask", "Volume"])
>
> for d in data:
> if d["currency"] <> "SLL": #esclude la valuta di secondlife SLL
> if d["bid"] is not None and d["ask"] is not None:
> if not any(str(d["symbol"]) in s for s in string):
Why are you checking d["symbol"] instead of d["currency"]? Maybe
I misunderstood the question.
Test like this for either set or list container type. Use
whichever json field is appropriate:
if d["currency"] not in esclusioni:
> c.writerow([str(d["currency"]),str(d["symbol"]),str(d
> ["bid"]),str(d["ask"]),str(d["currency_volume"])])
>
> esclusioni.close()
--
Neil Cerutti
More information about the Python-list
mailing list