DevelopmentPayment protectionDetails
- Revisions within the package are free.
- If you do not respond within 3 days of delivery, the work is accepted automatically.
The money is reserved when you pay and released only once you accept the work.

Example result
Merging the monthly sales files of 9 shops into one Excel report
How it is run
python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO Folder: sales/2026-10, 9 files found
2026-11-02 09:14:03 INFO shop-01.csv: 1,284 rows
2026-11-02 09:14:04 INFO shop-02.xlsx: 967 rows
2026-11-02 09:14:04 WARN shop-07.csv: 3 rows without a price skipped (lines 88, 412, 913)
2026-11-02 09:14:05 INFO Done: 10,412 rows -> report-2026-10.xlsx (sheets "Sales" and "Totals")
Settings, not code
The column names of each shop live in settings.ini, so a new shop or a renamed column is a line there:
[columns]
date = Date, Sale date, Day
product = Product, Item, Name
quantity = Qty, Quantity, Pcs
price = Price, Unit price
A part of the code
def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
"""Reads one shop's file and gives it the report's column names."""
table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
renamed = {}
for name, variants in columns.items():
found = next((c for c in table.columns if c.strip() in variants), None)
if found is None:
raise ReportError(f"{path.name}: no column for '{name}' (looked for {', '.join(variants)})")
renamed[found] = name
table = table.rename(columns=renamed)[list(columns)]
table["shop"] = path.stem
return table
Files: a ZIP archive with merge_sales.py (310 lines), settings.ini, requirements.txt and a README with installing Python, running the script and what each message in the log means. The client runs it on their own computer.
Client: a small chain of 9 stationery shops; each shop sends its sales for the month as a CSV or Excel file, with slightly different column names. Task: one script that reads every file in a folder, brings the columns to one shape, and writes a single Excel report with all sales and a sheet of totals by shop.
The client and all details are made up.
About this service
Many systems take data only as JSON or XML: an import into a shop or a CRM, a partner's upload, a feed for an app. This Python script reads your CSV export and writes the file in the structure you need: the field names, which fields sit inside others, numbers and dates as the right types, and the encoding. In Premium it can also group rows into one record, such as an order with all its items. Send us a few rows of the CSV and an example or description of the JSON or XML the other side wants (its documentation or a sample file). You run the script yourself on your computer. It converts the data you give it: it does not upload the result anywhere or check it against the other system.
What is included
- What you getA ZIP archive with the Python script, a README with step-by-step instructions and, from Standard, a settings file with the column-to-field mapping; the code is also shown on the order page.
- JSON or XMLOr the two side by side from one CSV
- Your structureField names and nesting as in your sample or documentation
- Right typesNumbers, true or false, dates in the format you need
- Encodings handledUTF-8 output from CSV in any common encoding
- Readable codeWith comments, easy to add a field later
How it works
- 1SamplesYou send a few CSV rows and a sample of the JSON or XML you need
- 2CodeWe write the script and the guide to running it
- 3Try itYou convert your file and try it in the system that needs it
- 4ChangesYou ask for changes within your package and send any error message
What we need from you
10-20 rows of your CSV (made-up values are fine), and what the result must look like: a sample JSON or XML file, the part of the other system's documentation that describes it, or an XSD schema if there is one. Which column goes to which field, how dates and numbers should be written, and whether several rows make one record. Your system: Windows, macOS or Linux.
We will ask you:
- Where will the JSON or XML go?
- What does the CSV look like?
- What must the result look like?
- Where will it run?
Compare packages
| Packages | BasicOne flat conversion$16 | StandardConversion with settings$33 | PremiumConversion tool$67 |
|---|---|---|---|
| Deadline | 1 day | 2 days | 3 days |
| Revisions | 1 | 2 | 3 |
| Code | up to 150 lines | up to 400 lines | up to 1,000 lines |
| Files of code | 1 | up to 3 | up to 8 |
| Settings file | No | Yes | Yes |
| Clear error messages and a log | No | Yes | Yes |
| Run options and a guide to running it on a schedule | No | No | Yes |
| Guide to installing and running it (README) | Yes | Yes | Yes |
| Language | Python | Python | Python |
| Order Basic | Order Standard | Order Premium |
Payment protection
You pay when you order, but the money is released only for accepted work.
- Fixed priceThe package price does not change after you pay.
- The money is reservedWhen you pay, the amount is only reserved. It is released to the service once you accept the work.
- Checked before deliveryEvery result goes through a quality check before it reaches you, and you see it on the order page before accepting it.
- Free revisionsAsk for changes within your brief as many times as the package allows.
- Acceptance after 3 daysIf within 3 days of delivery you neither accept the work nor ask for changes, it is accepted automatically. If you write in the order chat after delivery, the order waits; once we answer, we may start the 3 days again and will say so in the chat.
- Redo or a full refundIf the result does not match your brief and the revisions did not fix it, or the work takes more than twice its deadline, write in the order chat: we will redo the work or refund the payment in full.
Questions and answers
Can it check the XML against a schema?
In Premium, yes, if you send the XSD file: the script reports rows that do not fit. Whether the other system accepts the file in the end depends on its own checks.
Can it go the other way, JSON to CSV?
Yes, that is the same kind of work. Describe it in the brief and send a sample of the JSON.
Can it send the result to an API?
This offer makes the file. Sending it to a service's API can be added within the line limit of Premium, if the service has a public API and you put your own key in the settings file.
Do I need to know programming?
No. The README explains how to install Python once and run the script on your file.
Did not find your answer?


